How to: Prevent Appointments and Resources from Reloading

  • 2 minutes to read

In the following example the SchedulerDataStorage.AppointmentCollectionAutoReloading and SchedulerDataStorage.ResourceCollectionAutoReloading events are handled to prevent appointments and appointment resources from being reloaded from a data source in the following cases:

  • When a data source item (row) is being moved to a new position.
  • When a column (field) is added, modified or deleted in the data source.
 using System.ComponentModel;
 using DevExpress.XtraScheduler;
 // ...

 // Subscribe to the event which controls data reloading 
 // for the data source which contains appointments.
 schedulerControl.DataStorage.AppointmentCollectionAutoReloading += 
    new CancelListChangedEventHandler(OnCollectionAutoReloading);

 // Subscribe to the event which controls data reloading 
 // for the data source which contains appointment resources.
 schedulerControl.DataStorage.ResourceCollectionAutoReloading += 
    new CancelListChangedEventHandler(OnCollectionAutoReloading);


 private void OnCollectionAutoReloading(object sender, 
    CancelListChangedEventArgs e) {
    // Prevent data reloading when the data source is modified in specific cases.
    if(e.ListChangedType == ListChangedType.ItemMoved || e.ListChangedType == 
        ListChangedType.PropertyDescriptorAdded || 
        e.ListChangedType == ListChangedType.PropertyDescriptorChanged || 
        e.ListChangedType == ListChangedType.PropertyDescriptorDeleted)
       e.Cancel = true;
 }