[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
    [Expand]How to: Create Recurrence in Code
     How to: Display the Integrated Ribbon for the Scheduler
     How to: Create the Scheduler with the DateNavigator
     How to: Bind Scheduler to Data using the Entity Framework Code First Approach
     How to: Customize Editing and Recurrence Dialogs
     How to: Customize the In-Place Editor
     How to: Create Custom Labels and Statuses
     How to: Customize Appointment Appearance
     How to: Determine what Scheduler Element Is Hovered by the Mouse Pointer
     How to: Set Default Values for a New Appointment
     How to: Print a Scheduler Using Reports from a Document Preview Window
    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)

How to: Create Custom Labels and Statuses

This example demonstrates how to customize the appointment marks - labels and statuses used to identify appointments in the Scheduler. The default label and status items are similar to the corresponding marks in Microsoft® Outlook®. However, you can create your own labels and statuses, as described below.

This example consists of the following sections:

Expanded Create a New Application

  1. Create a new WPF Application project and open the MainWindow.xaml file in the Visual Studio Designer.
  2. Add the SchedulerControl object to your project. You can do this by dragging the SchedulerControl item from the DX.19.2: Scheduling Toolbox tab to the canvas.

  3. Right-click the SchedulerControl object and select Layout | Reset All in the context menu to stretch the SchedulerControl so that it fills the entire window.

Expanded Create a ViewModel with a Data Source

This example uses the DevExpress MVVM Framework to create a POCO ViewModel that provides data for the application. The CustomLabel and PaymentState class instances represent the custom labels and custom statuses, respectively.

Add the MainViewModel class to your project. Create two observable collections within the class that store custom labels and statuses, and are used for data binding.


This code snippet also contains the Doctors and Appointments observable collections, which are used to populate the scheduler application with sample data. Refer to the Getting Started topic for more details.

Specify the MainViewModel instance as the data context for data binding by assigning it to the FrameworkElement.DataContext property.

Expanded Specify Mappings for Label and Status Properties

Bind the specified data sources containing custom labels and statuses to the scheduler's DataSource using the DataSource.AppointmentLabelsSource and DataSource.AppointmentStatusesSource properties.

Use the DataSource.AppointmentLabelMappings and DataSource.AppointmentStatusMappings properties to map label and status properties to the CustomLabel and PaymentState class properties, respectively.

Expanded Result

Run the application. The following image illustrates the result:

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