[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
  Prerequisites
 [Expand]What's Installed
 [Expand].NET Core 3 Support
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Expand]Controls and Libraries
 [Expand]Scaffolding Wizard
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.Charts.Designer
  [Expand]DevExpress.Data
  [Expand]DevExpress.Mvvm.UI
  [Expand]DevExpress.Mvvm.UI.Interactivity
  [Expand]DevExpress.Mvvm.UI.ModuleInjection
  [Expand]DevExpress.Xpf.Accordion
  [Expand]DevExpress.Xpf.Bars
  [Expand]DevExpress.Xpf.Carousel
  [Expand]DevExpress.Xpf.Charts
  [Expand]DevExpress.Xpf.Charts.Localization
  [Expand]DevExpress.Xpf.Charts.RangeControlClient
  [Expand]DevExpress.Xpf.ChunkList
  [Expand]DevExpress.Xpf.Controls
  [Expand]DevExpress.Xpf.Core
  [Expand]DevExpress.Xpf.Core.ConditionalFormatting
  [Expand]DevExpress.Xpf.Core.DataSources
  [Expand]DevExpress.Xpf.Core.FilteringUI
  [Expand]DevExpress.Xpf.Core.Native
  [Expand]DevExpress.Xpf.Core.ServerMode
  [Expand]DevExpress.Xpf.Data
  [Expand]DevExpress.Xpf.DataAccess
  [Expand]DevExpress.Xpf.DataAccess.DataSourceWizard
  [Expand]DevExpress.Xpf.Diagram
  [Expand]DevExpress.Xpf.Dialogs
  [Expand]DevExpress.Xpf.Docking
  [Expand]DevExpress.Xpf.Docking.Base
  [Expand]DevExpress.Xpf.DocumentViewer
  [Expand]DevExpress.Xpf.DXBinding
  [Expand]DevExpress.Xpf.Editors
  [Expand]DevExpress.Xpf.Editors.DataPager
  [Expand]DevExpress.Xpf.Editors.DateNavigator
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor.Native
  [Expand]DevExpress.Xpf.Editors.Filtering
  [Expand]DevExpress.Xpf.Editors.Flyout
  [Expand]DevExpress.Xpf.Editors.Flyout.Native
  [Expand]DevExpress.Xpf.Editors.Helpers
  [Expand]DevExpress.Xpf.Editors.Native
  [Expand]DevExpress.Xpf.Editors.Popups
  [Expand]DevExpress.Xpf.Editors.RangeControl
  [Expand]DevExpress.Xpf.Editors.Settings
  [Expand]DevExpress.Xpf.Editors.Validation
  [Expand]DevExpress.Xpf.ExpressionEditor
  [Expand]DevExpress.Xpf.Gantt
  [Expand]DevExpress.Xpf.Gauges
  [Expand]DevExpress.Xpf.Gauges.Localization
  [Expand]DevExpress.Xpf.Grid
  [Expand]DevExpress.Xpf.Grid.ConditionalFormatting
  [Expand]DevExpress.Xpf.Grid.LookUp
  [Expand]DevExpress.Xpf.Grid.TreeList
  [Expand]DevExpress.Xpf.Layout.Core
  [Expand]DevExpress.Xpf.LayoutControl
  [Expand]DevExpress.Xpf.Map
  [Expand]DevExpress.Xpf.NavBar
  [Expand]DevExpress.Xpf.Navigation
  [Expand]DevExpress.Xpf.PdfViewer
  [Expand]DevExpress.Xpf.PivotGrid
  [Expand]DevExpress.Xpf.PivotGrid.Printing
  [Expand]DevExpress.Xpf.Printing
  [Expand]DevExpress.Xpf.Printing.Parameters
  [Expand]DevExpress.Xpf.Printing.Parameters.Models
  [Expand]DevExpress.Xpf.Printing.PreviewControl
  [Expand]DevExpress.Xpf.Printing.PreviewControl.Bars
  [Expand]DevExpress.Xpf.Prism
  [Expand]DevExpress.Xpf.PropertyGrid
  [Expand]DevExpress.Xpf.Reports.UserDesigner
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Extensions
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Localization
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard.Pages
  [Expand]DevExpress.Xpf.Ribbon
  [Expand]DevExpress.Xpf.RichEdit
  [Expand]DevExpress.Xpf.RichEdit.Menu
  [Collapse]DevExpress.Xpf.Scheduler
   [Expand]ActiveViewChangingEventArgs Class
    ActiveViewChangingEventHandler Delegate
    AppointmentFormEventHandler Delegate
   [Expand]AppointmentLabel Class
   [Expand]AppointmentLabelCollection Class
   [Expand]AppointmentMapping Class
   [Expand]AppointmentStatus Class
   [Expand]AppointmentStatusCollection Class
   [Expand]AppointmentStorage Class
   [Expand]AppointmentViewInfoCustomizingEventArgs Class
    AppointmentViewInfoCustomizingEventHandler Delegate
   [Expand]CustomizeTimeRulerFormEventArgs Class
    CustomizeTimeRulerFormEventHandler Delegate
   [Expand]CustomizeVisualViewInfoEventArgs Class
    CustomizeVisualViewInfoEventHandler Delegate
   [Expand]DayView Class
   [Expand]DeleteRecurrentAppointmentFormEventArgs Class
    DeleteRecurrentAppointmentFormEventHandler Delegate
   [Expand]EditAppointmentFormEventArgs Class
    EditRecurrentAppointmentFormEventHandler Delegate
   [Expand]FormShowingEventArgs Class
   [Expand]FullWeekView Class
   [Expand]GotoDateFormEventArgs Class
    GotoDateFormEventHandler Delegate
   [Expand]IAppointmentStorage Interface
   [Expand]InplaceEditorEventArgs Class
    InplaceEditorEventHandler Delegate
   [Expand]ISchedulerStorage Interface
   [Expand]MonthView Class
   [Expand]MoreButtonClickedRoutedEventArgs Class
    MoreButtonClickedRoutedEventHandler Delegate
   [Expand]NavigationButtonOptions Class
   [Expand]OptionsBehavior Class
   [Expand]OptionsCustomization Class
   [Expand]OptionsView Class
   [Expand]RecurrenceFormEventArgs Class
    RecurrenceFormEventHandler Delegate
   [Expand]RemindersFormEventArgs Class
    RemindersFormEventHandler Delegate
   [Expand]ResourceMapping Class
   [Expand]ResourceStorage Class
   [Expand]ScaleBasedRangeControlClientOptions Class
   [Expand]SchedulerAppointmentDisplayOptions Class
   [Expand]SchedulerColorSchema Class
   [Expand]SchedulerColorSchemaCollection Class
   [Collapse]SchedulerControl Class
     SchedulerControl Members
     SchedulerControl Constructor
    [Expand]SchedulerControl Properties
    [Collapse]SchedulerControl Events
      ActiveViewChanged Event
      ActiveViewChanging Event
      AllowAppointmentConflicts Event
      AllowAppointmentCopy Event
      AllowAppointmentCreate Event
      AllowAppointmentDelete Event
      AllowAppointmentDrag Event
      AllowAppointmentDragBetweenResources Event
      AllowAppointmentEdit Event
      AllowAppointmentResize Event
      AllowInplaceEditor Event
      AppointmentDrag Event
      AppointmentDrop Event
      AppointmentResized Event
      AppointmentResizing Event
      AppointmentViewInfoCustomizing Event
      BeforeDispose Event
      CustomizeMessageBoxCaption Event
      CustomizeTimeRulerFormShowing Event
      CustomizeVisualViewInfo Event
      DateNavigatorQueryActiveViewType Event
      DeleteRecurrentAppointmentFormShowing Event
      EditAppointmentFormShowing Event
      EditRecurrentAppointmentFormShowing Event
      GotoDateFormShowing Event
      InitNewAppointment Event
      InplaceEditorShowing Event
      MoreButtonClicked Event
      PopupMenuShowing Event
      PreviewMoreButtonClicked Event
      QueryResourceColorSchema Event
      QueryWorkTime Event
      RangeControlAutoAdjusting Event
      RecurrenceFormShowing Event
      RemindersFormDefaultAction Event
      RemindersFormShowing Event
      SelectionChanged Event
      StorageChanged Event
      UpdateUI Event
      VisibleIntervalChanged Event
      VisibleResourcesChanged Event
    [Expand]SchedulerControl Methods
   [Expand]SchedulerControlLocalizer Class
    SchedulerControlStringId Enumeration
   [Expand]SchedulerDayViewAppointmentDisplayOptions Class
   [Expand]SchedulerDeferredScrollingOption Class
   [Expand]SchedulerElement Class
   [Expand]SchedulerMenuEventArgs Class
    SchedulerMenuEventHandler Delegate
   [Expand]SchedulerMonthViewAppointmentDisplayOptions Class
   [Expand]SchedulerOptionsBase<T> Class
   [Expand]SchedulerOptionsBehavior Class
   [Expand]SchedulerOptionsRangeControl Class
   [Expand]SchedulerOptionsView Class
   [Expand]SchedulerRangeControlClient Class
   [Expand]SchedulerSelectionBarOptions Class
   [Expand]SchedulerStorage Class
   [Expand]SchedulerTimeIndicatorDisplayOptions Class
   [Expand]SchedulerTimelineViewAppointmentDisplayOptions Class
   [Expand]SchedulerTimeRuler Class
   [Expand]SchedulerTimeRulerCollection Class
   [Expand]SchedulerViewBase Class
   [Expand]SchedulerViewRepository Class
   [Expand]SchedulerWeekViewAppointmentDisplayOptions Class
   [Expand]TimelineView Class
   [Expand]WeekView Class
   [Expand]WeekViewBase Class
   [Expand]WorkWeekView Class
  [Expand]DevExpress.Xpf.Scheduler.Drawing
  [Expand]DevExpress.Xpf.Scheduler.Menu
  [Expand]DevExpress.Xpf.Scheduler.Reporting
  [Expand]DevExpress.Xpf.Scheduler.UI
  [Expand]DevExpress.Xpf.Scheduling
  [Expand]DevExpress.Xpf.Scheduling.Common
  [Expand]DevExpress.Xpf.Scheduling.Editors
  [Expand]DevExpress.Xpf.Scheduling.iCalendar
  [Expand]DevExpress.Xpf.Scheduling.Reporting
  [Expand]DevExpress.Xpf.Scheduling.Visual
  [Expand]DevExpress.Xpf.Scheduling.VisualData
  [Expand]DevExpress.Xpf.SpellChecker
  [Expand]DevExpress.Xpf.Spreadsheet
  [Expand]DevExpress.Xpf.Spreadsheet.Menu
  [Expand]DevExpress.Xpf.TreeMap
  [Expand]DevExpress.Xpf.Utils.Themes
  [Expand]DevExpress.Xpf.WindowsUI
  [Expand]DevExpress.Xpf.WindowsUI.Internal
  [Expand]DevExpress.Xpf.WindowsUI.Navigation
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Printing
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

SchedulerControl.AllowAppointmentConflicts Event

Occurs when the scheduler finds appointments that are in conflict, and the OptionsCustomization.AllowAppointmentConflicts property is set to Custom.

Namespace:DevExpress.Xpf.Scheduler
Assembly:DevExpress.Xpf.Scheduler.v19.1.dll

Expanded Syntax

Expanded Event Data

The event handler receives an argument of type AppointmentConflictEventArgs containing data related to this event.

Expanded Remarks

Important

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.

Handle the AllowAppointmentConflicts event to manually decide whether the current appointment conflicts with any other appointments. The appointment's copy to be checked can be accessed via the DevExpress.XtraScheduler.AppointmentEventArgs.Appointment property.

Note

The AllowAppointmentConflicts event is fired only if the OptionsCustomization.AllowAppointmentConflicts property is set to DevExpress.XtraScheduler.AppointmentConflictsMode.Custom.

This event's arguments provide the DevExpress.XtraScheduler.AppointmentConflictEventArgs.Conflicts property, which returns the collection of appointments that are considered to be conflicting by the SchedulerControl. All these appointments conflict with the current appointment, since their time intervals intersect and they are assigned the same resource. If the Conflicts collection is empty, this means that there are no conflicting appointments.

The DevExpress.XtraScheduler.AppointmentConflictEventArgs.AppointmentClone property contains an appointment modified due to an end-user's action. This is the appointment that intersects with existing ones. The Appointment property provides access to the current appointment before modification. So, when an appointment is dragged, its clone may conflict with original appointment, and the Conflicts collection may contain one element - the original appointment.

Note

If you determine that the current appointment has no conflicts, you should clear the Conflicts collection in this event's handler. If you determine that the current appointment has at least one conflict, then the Conflicts collection should contain at least one object that is different from the current appointment. The non-empty Conflicts collection cancels the user's action that caused a conflict. The common practice is to clear the Conflicts collection at the beginning, and populate it with any appointment if the user's action should be canceled. You can even create a fake appointment for this purpose and add it to the collection.

Note

The source appointment (accessed via the DevExpress.XtraScheduler.AppointmentEventArgs.Appointment property) or its copy isn't considered to be conflicting if it's present in the Conflicts collection. There should be other appointments in this collection, to indicate the conflict.

Expanded Example

This example demonstrates how to prevent end-users from having appointments within a certain time interval (from 2 PM to 3 PM). To implement end-user restrictions, handle the AllowAppointmentCreate event to prevent end-users from creating appointments within a certain time interval and the AllowAppointmentConflicts event to prevent an existing appointment from being dragged to the same time interval:

Expanded See Also

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