点击获取工具>>
在下载并装置新的Scheduler Control后,技术团队针对WPF的性能和开发范例对产品进行了优化。
性能
下表有助于总结新的Scheduler与旧的Scheduler之间的区别,性能曾经失去了很大的晋升。
从进步的渲染速度到疾速的滚动和记录加载,新的WPF Scheduler在设计时思考了最艰难的性能用例。
100% WPF
与旧版本不同,新的WPF Scheduler 是为了充分利用MVVM和WPF自定义(模板,款式)而构建的。 开始应用新的Scheduler后,您会发现能够齐全管制其视图模型(单元格/约会抉择、约会编辑等),并应用规范WPF办法自定义控件。
以下迁徙指南能够帮忙您将我的项目从较旧的我的项目迁徙到新的Scheduler Control。
迁徙指南
我的项目参数和命名空间:
删除对DevExpress.Xpf.Scheduler.v17.2.dll程序集的援用,增加对DevExpress.Xpf.Scheduling.v17.2.dll程序集的援用。
将
XAML
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
更改为
XAML
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduling"
在新的Scheduler中Week view相似于以前的Full Week View,在新的Scheduler中,以前的Week View 没有等效性能。
具备默认设置的所有视图类型都能够“开箱即用”,然而在在XAML中,您能够指定任意数量的具备不同类型和设置的视图。所有视图都蕴含在SchedulerControl.Views汇合中,激活视图由SchedulerControl.ActiveViewIndex 属性指定。
Caption属性容许最终用户确定在切换视图时单击哪个菜单项。
如以下代码示例所示,指定了视图属性:
XAML
`<dxsch:SchedulerControl>
<dxsch:DayView x:Name="dayViewOne" Caption="DayView One"
ResourcesPerPage="5"
ShowAllDayArea="False"
ShowWorkTimeOnly="True"
SnapToCellsMode="Never"
TimeScale="00:10:00" />
<dxsch:DayView x:Name="dayViewTwo" Caption="DayView Two"
ResourcesPerPage="5"
ShowAllDayArea="False"
ShowWorkTimeOnly="True"
SnapToCellsMode="Never"
TimeScale="00:10:00" />
<dxsch:WorkWeekView x:Name="workWeekView" Caption="My View"
ResourcesPerPage="5"
ShowAllDayArea="False"
ShowWorkTimeOnly="True"
SnapToCellsMode="Never"
TimeScale="00:10:00" />
<dxsch:WeekView x:Name="weekView"
ResourcesPerPage="5"
ShowAllDayArea="False"
ShowWorkTimeOnly="True"
SnapToCellsMode="Never"
TimeScale="00:10:00" />
<dxsch:MonthView x:Name="monthView"
WeekCount="4" />
</dxsch:SchedulerControl>
`
数据绑定:
应用DataSource 对象代替SchedulerStorage对象进行数据绑定,应用规范WPF绑定将数据源绑定到SchedulerControl,绑定的数据源须要Appointment和资源映射。
映射名称具备以下差别:
- 必须提供Id 映射
- 标签和状态标识映射别离命名为LabelId 和StatusId
- 揭示映射命名为Reminder,代替RemindferInfo
标签和状态能够应用DataSource.AppointmentLabelsSource和DataSource.AppointmentStatusesSource属性以与Appointments和Resources雷同的形式存储在数据源中并进行绑定。 在这种状况下,须要标签和状态映射。
上面的代码示例演示Scheduler,其调度和资源已绑定到数据上下文。该代码为 Note 字段指定了通用映射和自定义映射。
XAML
`<dxsch:SchedulerControl.DataSource>
<dxsch:DataSource AppointmentsSource="{Binding Appointments}"
ResourcesSource="{Binding Resources}">
<dxsch:DataSource.AppointmentMappings>
<dxsch:AppointmentMappings Start="StartTime"
End="EndTime"
AllDay="AllDay"
Subject="Subject"
Id="Id"
Description="Description"
LabelId="LabelId"
Location="Location"
RecurrenceInfo="RecurrenceInfo"
Reminder="ReminderInfo"
ResourceId="ResourceId"
StatusId="StatusId"
TimeZoneId="TimeZoneId"
Type="Type">
<dxsch:CustomFieldMapping Mapping="Note" Name="Note" />
</dxsch:AppointmentMappings>
</dxsch:DataSource.AppointmentMappings>
<dxsch:DataSource.ResourceMappings>
<dxsch:ResourceMappings Id="Id"
Caption="Caption" />
</dxsch:DataSource.ResourceMappings>
</dxsch:DataSource>
</dxsch:SchedulerControl.DataSource>`
Appointments:
AppointmentItem类实例代表Appointment对象,应用以下成员能够拜访AppointmentItem汇合:
- SchedulerControl.AppointmentItems,
- SchedulerControl.GetAppointments(TimeInterval),
- SchedulerControl.SelectedAppointments.
最终用户应用in-place编辑器或appointment编辑表单创立新的appointment时,将触发SchedulerControl.InitNewAppointment事件,您能够解决此事件以批改新创建的appointment。
随后,SchedulerControl.AppointmentsUpdated事件会触发,更改appointment时,将触发SchedulerControl.AppointmentsUpdated事件。 您能够解决此事件,以将更改保留到内部数据源。然而它不提供无关已批改的appointment信息,更通用的事件是SchedulerControl.ItemPropertyChangedevent,它批示属性更改以及约会、资源、状态和标签的更新。
要拜访选定appointments的源对象,请应用SchedulerControl.SelectedAppointmentsSource办法。 应用SchedulerControl.GetAppointmentItemBySourceObject办法可通过其源对象获取appointment。
定期Recurring Appointments:
SchedulerControl.GetAppointments办法返回指定工夫距离内的所有约会,包含呈现和异样。 若要确定递归链距离,请别离应用AppointmentItem.QueryStart和AppointmentItem.QueryEnd属性。您能够通过将递归链指定为指定的递归模式的异样来为递归链调配任何约会。
资源:
ResourceItem类实例代表Resource对象,可应用以下成员拜访ResourceItem汇合:
- SchedulerControl.ResourceItems
- SchedulerControl.VisibleResources
若要获取所选资源,请应用SchedulerControl.SelectedResource属性。应用SchedulerControl.SelectedResourceSource办法来拜访所选资源背地的源对象,要通过其源对象获取资源,请应用SchedulerControl.GetResourceItemBySourceObject办法。
资源不蕴含关联的图像,旧的Scheduler具备Resource.ImageBytes属性,该属性提供图片以显示在资源题目中。此时,您应该应用自定义字段来存储和获取图像,因而须要自定义字段映射。
若要在资源题目中显示图像(文本或任何控件),请创立一个自定义模板并将其调配给ViewBase.ResourceHeaderContentTemplate属性。 此模板的DataContext是一个ResourceHeaderViewModel对象,该对象提供Resource和Interval属性。您能够在Resource Header数据模板内的绑定中应用这些属性。
Labels
AppointmentLabelItem类实例示意约会的Label对象,能够应用SchedulerControl.LabelItems属性拜访标签的汇合。 您能够应用与约会和资源数据雷同的形式将蕴含约会标签数据的数据源绑定到DataSource.AppointmentLabelSource。
Statuses
AppointmentStatusItem类实例代表约会的Status对象,应用SchedulerControl.StatusItems属性能够拜访状态汇合。 您能够用与约会和资源数据雷同的形式将蕴含约会状态数据的数据源绑定到DataSource.AppointmentStatusesSource。
Reminders
ReminderItem类实例示意约会的揭示,其后辈 - RecurringReminderItem类 - 揭示定期约会系列。能够应用Appointment.Reminders属性拜访特定约会的揭示汇合。 若要创立揭示,请应用AppointmentItem.CreateNewReminder办法,HasReminder属性不再可用。
SchedulerControl.CheckTriggeredReminders办法立刻调用所有警报以进行过期约会,TriggeredReminder对象援用了触发的揭示,该对象联合了ReminderItem,相干的AppointmentItem和警报工夫。 应用SchedulerControl.TriggeredReminders属性能够拜访TriggeredReminder对象的汇合。