[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
 [Expand]What's Installed
 [Expand].NET Core 3 Support
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Collapse]Controls and Libraries
  [Expand]Data Grid
  [Expand]Ribbon, Bars and Menu
  [Expand]Charts Suite
  [Expand]Pivot Grid
  [Expand]Rich Text Editor
  [Expand]Tree List
  [Expand]Gauge Controls
  [Expand]Map Control
  [Expand]Layout Management
  [Expand]Windows Modern UI
  [Expand]Data Editors
  [Expand]Navigation Controls
  [Expand]Spell Checker
  [Expand]Property Grid
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Gantt Control
  [Expand]Diagram Control
  [Expand]Windows and Utility Controls
   Dialogs, Notifications and Panels
  [Collapse]Scheduler (legacy)
   [Expand]Getting Started
    [Expand]Scheduler Elements
     Pop-up Menus
    [Expand]Data Binding
    [Expand]Supported Formats
    [Expand]Styles and Templates
     Time Zones
     Product Class Structure
     Scheduling Basics
   [Expand]Visual Elements
 [Expand]Scaffolding Wizard
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Scheduling Basics


You are viewing documentation for the legacy WPF Scheduler control. If you're starting a new project, we strongly recommend that you use a new control declared in the DevExpress.Xpf.Scheduling namespace. If you decide to upgrade an existing project in order to switch to the updated scheduler control, see the Migration Guidelines document.

This document describes how a simple scheduling application operates. This topic introduces the basics for providing appointment and resource data for the Scheduler Control.

Expanded How Does the Scheduling Application Operate?

The Scheduler Control displays the appointment data to end-users and responds to their input. All its data is provided via the built-in Scheduler Storage object. The Scheduler Control knows nothing about the data layer, while the Scheduler Storage knows nothing about end-user interaction.

Expanded Processing the Data Layer

The SchedulerStorage object is intended to work on the data layer to provide appointment and resource data to the scheduling application. In fact, the Scheduler Storage contains two separate data stores - one for appointments and one for resources. When providing data to these stores, it is necessary to specify mappings between data fields in the datasource and their interpretation in the storage. Also, these stores provide the ability to optimize data loading, specify options specific to different data, add custom fields, etc.

Both AppointmentStorage and ResourceStorage are inherited from the base class, which provides all the basic functionality required for data binding. To bind a storage to a specific data table (or another data object), it is necessary to set its DataSource and DataMember properties. Then, specify the mappings for the standard and custom properties to corresponding data fields in the bound datasource. For example, if the bound data source contains a field called "ProcessStartTime", the Appointment Storage needs to be aware that the value of this data field is the appointment's Appointment.Start value.

Also, the Appointment Storage contains two collections of Appointment Labels and Statuses, accessible via its AppointmentStorage.Labels and AppointmentStorage.Statuses properties. Note that these two collections contain standard items (as in Microsoft® Outlook®) by default. However, you can customize these collections as needed.

The following schema illustrates the Appointment Storage and its main properties:

The Resource Storage provides all the functionality required to provide resource data for the Scheduler Storage. The appointments and resources are linked via the AppointmentMapping.ResourceId and ResourceMapping.Id properties. An appointment may be associated with several resources if SchedulerStorage.ResourceSharing is enabled, and the corresponding data field in the appointment data source is capable of holding XML content.

The following schema illustrates the Resource Storage and its main properties.

Is this topic helpful?​​​​​​​