配置
RadScheduler的预定义ViewDefinitions有各种属性,可以设置视图配置最好的。其中一些是常见的所有观点,其他人则具体为每个视图。在下一节中我们将通过所有常见的属性。
视图定义的特定属性的更多信息,检查在这里。
标题
返回或者设置的标题视图。
LargeChangeInterval
获取或设置与当前日期时间间隔将会增加或减少时点击导航按钮调度器的头。的默认值LargeChangeInterval属性是:
- 1 d DayView(1天)
- WeekView 7 d(7天)
- MonthView 1 m(1个月)
- TimelineView 7 d(7天)
属性的类型DateTimeInterval。在接下来的例子中LargeChangeIntervalDayView的属性被设置为2天,MonthView设置2个月和4天。
示例1:设置在XAML LargeChangeInterval房产
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。ViewDefinitions>
示例2:设置LargeChangeInterval属性在代码中
dayDefintion。LargeChangeInterval = new DateTimeInterval (2,0);monthDefinition。LargeChangeInterval = new DateTimeInterval (4,2);
SmallChangeInterval
获取或设置调度程序的小变化区间。它显示当前的日期时间间隔移动滚动条时将会增加或减少。的默认值SmallChangeInterval是:
- MonthView 7 d(7天)
- 1 d TimelineView(1天)
设置SmallChangeInterval财产DayViewDefiniton和WeekViewDefinition不会改变视图的行为。这是由于使用垂直滚动条不能导航到下一组天,但会滚动当前视图。
下面的例子显示了如何设置SmallChangeInterval财产的TimelineViewDefinition MonthViewDefinition 11天,3天:
示例3:设置在XAML SmallChangeInterval房产
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。ViewDefinitions>
示例4:设置SmallChangeInterval属性在代码中
monthDefintion。0 SmallChangeInterval = new DateTimeInterval(11日);timelineDefinition。SmallChangeInterval= new DateTimeInterval(3, 0);
DayStartTime
获取或设置用于指示TimeRuler的开始时间。默认值的所有视图DayStartTime就是或上午12:00。DayStartTime是类型的时间间隔。它不会影响MonthView的外观,因为MonthView不显示时间。下面的例子说明了如何设置DayView DayStartTime, WeekView TimelineView:
示例5:设置在XAML DateStartTime房产
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。ViewDefinitions>
示例6:设置DateStartTime属性在代码中
dayDefintion。DayStartTime= new TimeSpan(7, 30, 00); weekDefinition.DayStartTime = new TimeSpan(8, 0, 0); timelineDefinition.DayStartTime = new TimeSpan(11, 30, 0);
MonthViewDefinition AgendaViewDefinition不支持DayStartTime财产。
DayEndTime
获取或设置时间用来表示结束的观点。的DayStartTime视图的默认值是:
1.00:00:00 DayView(1天)
1.00:00:00 WeekView(1天)
1.00:00:00 TimelineView(1天)
DayEndTime属性的类型是时间间隔。MonthView将以以下方式影响——如果有约会显示的时间范围,他们也不会显示在MonthView。
下面的例子说明了如何设置DayView DayStartTime, WeekView TimelineView:
例7:设置在XAML DayEndTime房产
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。ViewDefinitions>
例8:在代码中设置DayEndTime属性
dayDefintion。DayEndTime= new TimeSpan(17, 30, 00); weekDefinition.DayEndTime = new TimeSpan(18, 0, 0); timelineDefinition.DayEndTime = new TimeSpan(21, 30, 0);
MonthViewDefinition AgendaViewDefinition不支持DayEndTime财产。
VisibleDays
获取或设置在视图中可见的日期。它表明计数的日期将显示在视图中。VisibleDays属性的默认值是:
- 1天DayView
- 7天WeekView
- 42天MonthView
- 7天TimelineView
下面的代码片段说明了如何设置VisibleDays属性在XAML和后台代码为所有预定义的视图:
例9:设置在XAML VisibleDays房产
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。ViewDefinitions>
例10:在代码中设置VisibleDays属性
dayDefintion。VisibleDays= 4; weekDefinition.VisibleDays = 11; monthDefintion.VisibleDays = 21; timelineDefinition.VisibleDays = 9;
图1:RadScheduler VisibleDays组
FirstDayOfWeek
获取或设置一周的第一个工作日将开始根据视图。它只会影响WeekView和MonthView。一旦设定,它将覆盖的FirstDayOfWeek属性调度器和一个默认的文化。
StretchGroupHeaders
如果设置为True(缺省值),有更多的可用空间ViewDefintion离开了,这将是分布式的。
例11:设置StretchGroupHeaders财产
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。ViewDefinitions>
图2:RadScheduler StretchGroupHeaders组
取向
获取或设置方向的观点。当取向水平TimeRuler也面向水平,但GroupHeaders面向垂直,反之亦然。
值可以垂直或水平。在MonthView不存在。这是根据TimeRuler的位置测量。面向属性的默认值是:
- 垂直的DayView
- 垂直的WeekView
- 水平为TimelineView
下面的代码片段展示了如何设置定位属性在XAML和后台代码:
例12:在XAML设置定位属性
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。ViewDefinitions>
例13:在代码中设置定位属性
dayDefintion。取向= Orientation.Horizontal; weekDefinition.Orientation = Orientation.Horizontal; timelineDefinition.Orientation = Orientation.Vertical;
图3:DayView水平方向
图4:WeekView水平方向
图5:TimelineView垂直方向
GroupFilter
的GroupFilter属性可以用来当给定组分组的情况需要被排除在外。一个谓词,获取给定组作为参数并返回一个布尔值确定该组织是否应该参加分组操作。下面的例子演示了如何RadScheduler可以显示只有周末或工作日通过其吗GroupFilter。
例14:定义GroupFilter谓词的视图模型
公共类MyViewModel: ViewModelBase{私人Func <对象,bool > groupFilter;{这个公共MyViewModel ()。groupFilter = new Func <对象,bool > (this.GroupFilterFunc);公共函数}<对象,bool > GroupFilter{得到{返回this.groupFilter;如果(这}私人集{。groupFilter ! =){这个价值。groupFilter =价值;this.OnPropertyChanged (() = > this.GroupFilter);groupName}}}私人bool GroupFilterFunc(对象){如果(groupName DateTime) {((DateTime) groupName)返回。DayOfWeek = = DayOfWeek。周六| | ((DateTime) groupName)。DayOfWeek = = DayOfWeek.Sunday;}返回true; } }
例15:应用GroupFilter WeekView
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。DataContext > <当地:MyViewModel / > < / telerik: RadScheduler。DataContext > < telerik: RadScheduler。ViewDefinitions>
图6:WeekView GroupFilter应用
SubGroupsFilter
RadScheduler暴露了SubGroupsFilter机制。它提供了选项控制是否一个给定的项目应该在一个特定的组或不可见。下面的例子演示了如何填充一些示例RadScheduler资源和他们如何可以在一个给定的可视化组和隐藏在另一个地方。
示例16:定义SubGroupsFilter视图模型
公共类MyViewModel: ViewModelBase{私人Func < IGroupInfo bool > subGroupsFilter;{这个公共MyViewModel ()。subGroupsFilter = new Func < IGroupInfo, bool > (this.FilterSpeakersByRooms);公共函数}< IGroupInfo, bool > SubGroupsFilter{得到{返回this.subGroupsFilter;私人集合{这个}。subGroupsFilter =价值;this.OnPropertyChanged (() = > this.SubGroupsFilter);}}私人bool FilterSpeakersByRooms (IGroupInfo groupInfo){如果(groupInfo ! = null) {var currentResource = groupInfo。作为资源名称;var parentResource = groupInfo.ParentGroupInfo。作为资源名称;如果(currentResource ! = null & & parentResource ! = null){/ /约翰钢只有科目专家水平。 if (currentResource.ResourceType == "Speaker") { if (currentResource.ResourceName == "John Steel" && parentResource.ResourceName != "Expert") { return false; } // Howard Snyder has only Basic and Advanced level subjects. if (currentResource.ResourceName == "Howard Snyder" && parentResource.ResourceName == "Expert") { return false; } // Martine Rance has only Basic level subjects. if (currentResource.ResourceName == "Martine Rance" && parentResource.ResourceName != "Basic") { return false; } // Daniel Tonini has only Advanced level subjects. if (currentResource.ResourceName == "Daniel Tonini" && parentResource.ResourceName != "Advanced") { return false; } } } DateTime date; // Hide the Advanced subgroup for the days that have no advanced subjects. if (DateTime.TryParse(groupInfo.ParentGroupInfo.Name.ToString(), out date)) { if (currentResource.ResourceName == "Basic" && (date.DayOfWeek >= DayOfWeek.Friday || date.DayOfWeek == DayOfWeek.Sunday)) { return false; } } } return true; } }
示例17:填充RadScheduler SubGroupsFilter资源和绑定
< telerik: RadScheduler x: Name =“调度”AppointmentsSource = "{绑定任命}" > < telerik: RadScheduler。DataContext > <当地:MyViewModel / > < / telerik: RadScheduler。DataContext > < telerik: RadScheduler。ViewDefinitions>