Skip to content
High performance schedulers controls for WPF.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs

README.md

TagBites.WinSchedulers

Fast and easy customized WPF schedulers controls. Inculding time scheduler / gantt control and bucket scheduler.

NuGet Package: https://www.nuget.org/packages/TagBites.WinSchedulers/

TimeScheduler example

To start using the control, all you need is a few lines of code that will define its contents.

public class SchedulerDataSource : TimeSchedulerDataSource
{
    public IList<object>[] Resources  { get; }
    public IList<TaskModel> TaskCollection { get; }

    public SchedulerDataSource()
    {
        Resources = GenerateResources();  // TODO Add custom data provider
        TaskCollection = GenerateTasks(); // TODO Add custom data provider
    }


    protected override TimeSchedulerTaskDescriptor CreateTaskDescriptor()
    {
        return new TimeSchedulerTaskDescriptor(typeof(TaskModel), nameof(TaskModel.Resource), nameof(TaskModel.Interval));
    }

    public override IList<object> LoadResources() => Resources;
    public override void LoadContent(TimeSchedulerDataSourceView view)
    {
        foreach (var task in TaskCollection)
            if (view.Interval.IntersectsWith(task.Interval) && view.Resources.Contains(task.Resource))
                view.AddTask(task);
    }
}

Full example on github: TagBites.WinSchedulers-TimeScheduler-Simple.

BucketScheduler example

public class SchedulerDataSource : BucketSchedulerDataSource
{
    public IList<object>[] Rows  { get; }
    public IList<object>[] Columns  { get; }
    public IList<BucketModel> BucketCollection { get; }

    public SchedulerDataSource()
    {
        Rows = GenerateRows();  // TODO Add custom data provider
        Columns = GenerateRows();  // TODO Add custom data provider
        BucketCollection = GenerateBuckets(); // TODO Add custom data provider
    }


    protected override TimeSchedulerTaskDescriptor CreateTaskDescriptor()
    {
        return new TimeSchedulerTaskDescriptor(typeof(TaskModel), nameof(TaskModel.Resource), nameof(TaskModel.Interval));
    }

    public override IList<object> LoadResources() => Resources;
    public override void LoadContent(TimeSchedulerDataSourceView view)
    {
        foreach (var task in TaskCollection)
            if (view.Interval.IntersectsWith(task.Interval) && view.Resources.Contains(task.Resource))
                view.AddTask(task);
    }
}

Full example on github: TagBites.WinSchedulers-BucketScheduler-Simple.

You can’t perform that action at this time.