Back to Devexpress

SchedulerViewBase.TimeRegionContentTemplateSelector Property

wpf-devexpress-dot-xpf-dot-scheduling-dot-schedulerviewbase-31301800.md

latest4.5 KB
Original Source

SchedulerViewBase.TimeRegionContentTemplateSelector Property

Specifies the object that chooses a time region template based on custom logic. This is a dependency property.

Namespace : DevExpress.Xpf.Scheduling

Assembly : DevExpress.Xpf.Scheduling.v25.2.dll

NuGet Package : DevExpress.Wpf.Scheduling

Declaration

csharp
public DataTemplateSelector TimeRegionContentTemplateSelector { get; set; }
vb
Public Property TimeRegionContentTemplateSelector As DataTemplateSelector

Property Value

TypeDescription
DataTemplateSelector

A System.Windows.Controls.DataTemplateSelector descendant that chooses a template based on custom logic.

|

Remarks

A template that defines the presentation of time regions is specified by the TimeRegionContentTemplate property.

The example below illustrates how to apply different templates based on the time region’s Start property value:

xaml
<dx:ThemedWindow.Resources>
        <DataTemplate x:Key="timeRegionTextContentTemplate">
            <TextBlock Text="Break" VerticalAlignment="Center" HorizontalAlignment="Center"/>
        </DataTemplate>
        <DataTemplate x:Key="timeRegionImageContentTemplate">
            <Image MaxHeight="28"
            Source="{dx:SvgImageSource Uri='pack://application:,,,/DevExpress.Images.v21.2;component/SvgImages/Icon Builder/Travel_Restaurant.svg'}" />
        </DataTemplate>
        <local:TimeRegionTemplateSelector x:Key="timeRegionTemplateSelector"
                                          TimeRegionTextContentTemplate="{StaticResource timeRegionTextContentTemplate}"
                                          TimeRegionImageContentTemplate="{StaticResource timeRegionImageContentTemplate}"/>
    </dx:ThemedWindow.Resources>
    ...
    <dxsch:SchedulerControl>
        <dxsch:SchedulerControl.TimeRegionItems>
            <dxsch:TimeRegionItem Start="{x:Static sys:DateTime.Today}" End="{x:Static sys:DateTime.Now}"
                                  BrushName="{x:Static dxsch:DefaultBrushNames.TimeRegion1Hatch}"
                                  />
        </dxsch:SchedulerControl.TimeRegionItems>
        <dxsch:DayView TimeRegionContentTemplateSelector="{StaticResource timeRegionTemplateSelector}" />
    </dxsch:SchedulerControl>
csharp
public class TimeRegionTemplateSelector : DataTemplateSelector {
    public DataTemplate TimeRegionTextContentTemplate { get; set; }
    public DataTemplate TimeRegionImageContentTemplate { get; set; }

    public override DataTemplate SelectTemplate(object item, DependencyObject container) {
        TimeRegionViewModel timeRegion = item as TimeRegionViewModel;
        if (timeRegion != null)
            return (timeRegion.TimeRegion.Start.Hour > 18) ? TimeRegionImageContentTemplate : TimeRegionTextContentTemplate;
        return base.SelectTemplate(item, container);
    }
}
vb
Public Class TimeRegionTemplateSelector
  Inherits DataTemplateSelector

  Public Property TimeRegionTextContentTemplate() As DataTemplate
  Public Property TimeRegionImageContentTemplate() As DataTemplate

  Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
    Dim timeRegion As TimeRegionViewModel = TryCast(item, TimeRegionViewModel)
    If timeRegion IsNot Nothing Then
      Return If(timeRegion.TimeRegion.Start.Hour > 18, TimeRegionImageContentTemplate, TimeRegionTextContentTemplate)
    End If
    Return MyBase.SelectTemplate(item, container)
  End Function
End Class

See Also

SchedulerViewBase Class

SchedulerViewBase Members

DevExpress.Xpf.Scheduling Namespace