[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]Getting Started
    Time Regions
   [Expand]Visual Elements
   [Expand]Styles and Templates
   [Expand]Design-Time Features
    Time Zones
   [Expand]Data Binding
    Appearance Customization
    Clipboard Operations
    Printing Templates
    Drag and Drop Customization
    End-User Restrictions
    Migration Guidelines
  [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
  [Expand]Scheduler (legacy)
 [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)

Migration Guidelines

This topic contains a list of guidelines for migrating your WPF Scheduler (deprecated) project to the current WPF Scheduler control.

Expanded Project References and Namespaces

Expanded Views

  • The Week view in the new Scheduler is similar to the former Full Week View; the former Week View has no equivalent in the new Scheduler.
  • All view types with default settings are available "out-of-the-box". However, in XAML you can specify any number of views with different types and settings. All views are contained in the SchedulerControl.Views collection. The active view is specified by the SchedulerControl.ActiveViewIndex property.
  • The ViewBase.Caption property allows the end-user to determine which menu item to click when switching views:

  • View properties are specified as illustrated in the following table:

View Properties (new)

View Properties (old)

Expanded Data Binding

Review the following table to compare the markup code.


SchedulerStorage (obsolete)

Expanded Appointments

An AppointmentItem class instance represents the Appointment object. AppointmentItem collections are accessible using the following members:

Collection Member to Access
AppointmentItemCollection SchedulerControl.AppointmentItems. The collection does not contain appointment occurrences.
System.Collections.Generic.IEnumerable<AppointmentItem> SchedulerControl.GetAppointments - returns all existing appointments, including occurrences, in the specified interval.
System.Collections.ObjectModel.ObservableCollection<AppointmentItem> SchedulerControl.SelectedAppointments

Expanded Recurring Appointments

  • The SchedulerControl.GetAppointments method returns all appointments within the specified interval, including occurrences and exceptions. To get all occurrences within the specified interval (in the code sample - 5 days), use the following code:

  • To determine the recurrence chain interval, use the SchedulerItemBase.QueryStart and SchedulerItemBase.QueryEnd properties, respectively.
  • You can assign any appointment to the recurrence chain by making it an exception the specified recurrence pattern using the AppointmentItem.SetExceptionRecurrenceIndex and AppointmentItem.SetExceptionRecurrencePattern methods. The following code snippet demonstrates how to convert an appointment with an index 2 in the Scheduler appointment collection to the exception of the pattern specified by the appointment with index 0 and exception recurrence index 3:

Expanded Resources

A ResourceItem class instance represents the Resource object. ResourceItem collections are accessible using the following members:

Collection Member to Access
ResourceItemCollection SchedulerControl.ResourceItems
System.Collections.ObjectModel.ReadOnlyObservableCollection<ResourceItem> SchedulerControl.VisibleResources

A resource does not contain an associated image. The legacy Scheduler has the Resource.ImageBytes property which provides a picture to display in a resource header. At this time, you should use a custom field to store and obtain an image, thus a custom field mapping is required in that situation.

To show an image (text or any control) in the resource header, create a custom template and assign it to the SchedulerViewBase.ResourceHeaderContentTemplate property. The DataContext of this template is a ResourceHeaderViewModel object that provides the Resource and Interval properties. You can use these properties in bindings inside the Resource Header data template.

Expanded Labels

An AppointmentLabelItem class instance represents the appointment's Label object. A collection of labels is accessible using the SchedulerControl.LabelItems property.

You can bind a data source containing appointment label data to the Scheduler DataSource, in the same manner as appointment and resource data.

Expanded Statuses

An AppointmentStatusItem class instance represents the appointment's Status object. A collection of statuses is accessible using the SchedulerControl.StatusItems property.

You can bind a data source containing appointment status data to the Scheduler DataSource, in the same manner as appointment and resource data.

Expanded Reminders

A ReminderItem class instance represents a reminder for an appointment. A collection of reminders for a particular appointment is accessible using the AppointmentItem.Reminders property.

To create a reminder, use the AppointmentItem.CreateNewReminder method. The HasReminder property is no longer available.

The SchedulerControl.CheckTriggeredReminders method invokes all alerts for outdated appointments at once. A triggered reminder is referenced by a TriggeredReminder object which combines the ReminderItem, the related AppointmentItem and an alert time. A collection of TriggeredReminder objects is accessible using the RemindersWindowShowingEventArgs.TriggeredReminders property. You can handle its CollectionChanged event to be notified about alerts.

Expanded Printing

Use the Scheduler Reporting technique as described in the How to: Print a Scheduler Using Reports from a Document Preview Window example.

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