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
Section titled “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
Section titled “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.