Skip to main content
All docs
V25.1
  • How to Customize Time Scales in the Timeline View

    • 5 minutes to read

    The following example demonstrates how to specify time scales for the Timeline View using the MVVM architectural pattern.

    Use the TimelineView.TimeScalesSource property to bind the view to a collection of objects containing time scale settings described in the ViewModel. The Timeline View generates time scales based on templates. Create multiple templates, one template for each time scale type. In this example, there are three time scale templates: WorkDayScaleTemplate, WorkHourScaleTemplate, and FixedTimeScaleTemplate.

    To choose the required template based on the time scale type, create a template selector and assign it to the TimelineView.TimeScaleTemplateSelector property.

    TimeScales

    View Example

    Imports System.Windows
    Imports System.Windows.Controls
    Imports System
    
    Namespace WpfSchedulerTimelineScalesTemplate
        Public Class TimeScaleTemplateSelector
            Inherits DataTemplateSelector
    
            Public Property WorkDayScaleTemplate() As DataTemplate
            Public Property WorkHourScaleTemplate() As DataTemplate
            Public Property FixedTimeScaleTemplate() As DataTemplate
            Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
                Dim timeScale As TimeScaleViewModel = TryCast(item, TimeScaleViewModel)
                Select Case timeScale.Type
                    Case ScaleType.WorkDay
                        Return WorkDayScaleTemplate
                    Case ScaleType.WorkHour
                        Return WorkHourScaleTemplate
                    Case ScaleType.FixedTime
                        Return FixedTimeScaleTemplate
                    Case Else
                        Throw New NotImplementedException()
                End Select
            End Function
        End Class
    End Namespace