syncfusion-wpf-scheduler
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWPF Scheduler (SfScheduler) Implementation
WPF Scheduler(SfScheduler)实现指南
The WPF Scheduler (SfScheduler) is a comprehensive scheduling control for managing appointments through an intuitive user interface similar to Outlook calendar. It provides eight different view types, appointment management, resource grouping, drag-and-drop, recurrence patterns, timezone support, and extensive customization options.
WPF Scheduler(SfScheduler)是一款功能全面的调度控件,通过类似Outlook日历的直观用户界面管理预约。它提供8种不同的视图类型、预约管理、资源分组、拖放功能、重复预约规则、时区支持以及丰富的自定义选项。
When to Use This Skill
适用场景
Use this skill when the user needs to:
- Implement calendar or scheduler functionality in WPF applications
- Create appointment management systems
- Build resource scheduling applications
- Implement meeting or event management interfaces
- Add Outlook-like calendar views to applications
- Schedule and manage recurring appointments
- Handle multi-resource scheduling scenarios
- Display appointments across different timezones
- Implement drag-and-drop appointment rescheduling
- Create custom appointment editors or views
当用户需要以下功能时,可使用该技能:
- 在WPF应用中实现日历或调度功能
- 搭建预约管理系统
- 构建资源调度类应用
- 实现会议或活动管理界面
- 为应用添加类Outlook的日历视图
- 调度和管理重复预约
- 处理多资源调度场景
- 跨不同时区显示预约
- 实现预约拖放重调度功能
- 创建自定义预约编辑器或视图
Component Overview
组件概述
Key Capabilities:
- 8 Built-in Views: Day, Week, WorkWeek, Month, TimelineDay, TimelineWeek, TimelineWorkWeek, TimelineMonth
- Appointment Management: Normal, all-day, spanned, and recurring appointments with full CRUD operations
- Resource Scheduling: Multi-resource support with grouping by resource or date
- Drag-and-Drop: Intuitive appointment rescheduling with visual feedback
- Recurrence Patterns: Daily, weekly, monthly, yearly with exception handling
- Timezone Support: Multiple timezone handling with automatic DST adjustments
- Built-in Editor: Appointment creation and editing with validation
- Customization: Extensive styling, templates, and appearance options
- Accessibility: WCAG compliance with full keyboard navigation
- Advanced Features: Load-on-demand, reminders, localization
核心功能:
- 8种内置视图:Day、Week、WorkWeek、Month、TimelineDay、TimelineWeek、TimelineWorkWeek、TimelineMonth
- 预约管理:支持普通、全天、跨天和重复预约,包含完整的CRUD操作
- 资源调度:多资源支持,可按资源或日期分组
- 拖放功能:带视觉反馈的直观预约重调度
- 重复规则:支持每日、每周、每月、每年重复,包含异常处理
- 时区支持:多时区处理,自动调整夏令时
- 内置编辑器:带验证的预约创建与编辑功能
- 自定义选项:丰富的样式、模板和外观配置
- 可访问性:符合WCAG标准,支持全键盘导航
- 高级功能:按需加载、提醒、本地化
Documentation and Navigation Guide
文档与导航指南
Getting Started
快速入门
📄 Read: references/getting-started.md
- Assembly deployment and NuGet packages
- Creating basic scheduler application (Designer, XAML, C#)
- Basic appointment setup and configuration
- First day of week and theme support
- Initial setup and quick start examples
📄 阅读文档:references/getting-started.md
- 程序集部署与NuGet包
- 创建基础调度应用(设计器、XAML、C#)
- 基础预约设置与配置
- 一周起始日与主题支持
- 初始设置与快速入门示例
Views and Display
视图与显示
📄 Read: references/scheduler-views.md
- Available view types (Day, Week, Month, Timeline variants)
- ViewType property and switching between views
- View-specific features and rendering
- Current date display
📄 Read: references/view-customization.md
- Time interval and slot height customization
- Working days and hours configuration
- Special time regions (lunch breaks, holidays)
- Selection restrictions in timeslots
📄 阅读文档:references/scheduler-views.md
- 可用视图类型(Day、Week、Month及时间线变体)
- ViewType属性与视图切换
- 视图专属功能与渲染
- 当前日期显示
📄 阅读文档:references/view-customization.md
- 时间间隔与槽高度定制
- 工作日与工作小时配置
- 特殊时间段(午休、节假日)
- 时间槽选择限制
Appointments and Data
预约与数据
📄 Read: references/appointments.md
- ScheduleAppointment class and properties
- Creating and managing appointments
- ItemSource and AppointmentMapping
- Custom business objects and data binding
- All-day and spanned appointments
- Recurrence appointments and patterns (RRULE)
- Recurrence exceptions
📄 Read: references/appointment-editing.md
- Built-in appointment editor
- Creating, editing, and deleting appointments via UI
- Editor customization and validation
- Editor events and custom logic
📄 Read: references/appointment-drag-drop.md
- Drag-and-drop functionality
- Rescheduling appointments
- Drag-drop restrictions and events
📄 阅读文档:references/appointments.md
- ScheduleAppointment类与属性
- 预约的创建与管理
- ItemSource与AppointmentMapping
- 自定义业务对象与数据绑定
- 全天与跨天预约
- 重复预约与规则(RRULE)
- 重复预约异常处理
📄 阅读文档:references/appointment-editing.md
- 内置预约编辑器
- 通过UI创建、编辑和删除预约
- 编辑器定制与验证
- 编辑器事件与自定义逻辑
📄 阅读文档:references/appointment-drag-drop.md
- 拖放功能
- 预约重调度
- 拖放限制与事件
Resource Management
资源管理
📄 Read: references/resource-grouping.md
- Resource concepts and SchedulerResource class
- ResourceGroupType (Resource vs Date grouping)
- Assigning resources to appointments
- Multi-resource scheduling
- Resource appearance customization
📄 阅读文档:references/resource-grouping.md
- 资源概念与SchedulerResource类
- ResourceGroupType(按资源/日期分组)
- 为预约分配资源
- 多资源调度
- 资源外观定制
Calendar and Time Management
日历与时间管理
📄 Read: references/calendar-types.md
- Calendar systems (Gregorian, custom)
- Calendar configuration
📄 Read: references/date-navigation.md
- DisplayDate property
- Programmatic navigation methods
- Date change events
📄 Read: references/timezones.md
- Scheduler and appointment timezones
- Automatic timezone conversion
- Daylight saving time handling
- Multi-timezone scheduling scenarios
📄 阅读文档:references/calendar-types.md
- 日历系统(公历、自定义)
- 日历配置
📄 阅读文档:references/date-navigation.md
- DisplayDate属性
- 程序化导航方法
- 日期变更事件
📄 阅读文档:references/timezones.md
- 调度器与预约时区
- 自动时区转换
- 夏令时处理
- 多时区调度场景
UI Customization
UI定制
📄 Read: references/ui-features.md
- Header customization and templates
- Context menu and commands
- Busy indicator
- Selection modes and events
📄 阅读文档:references/ui-features.md
- 头部定制与模板
- 上下文菜单与命令
- 忙碌指示器
- 选择模式与事件
Advanced Features
高级功能
📄 Read: references/advanced-features.md
- Accessibility (WCAG, keyboard navigation)
- Localization and culture-specific formatting
- Load on demand for large datasets
- Reminders and notifications
- Migration from SfSchedule to SfScheduler
📄 阅读文档:references/advanced-features.md
- 可访问性(WCAG、键盘导航)
- 本地化与特定文化格式
- 大数据集按需加载
- 提醒与通知
- 从SfSchedule迁移到SfScheduler
Quick Start Example
快速入门示例
Basic Scheduler with Appointments
带预约的基础调度器
XAML:
xaml
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
<syncfusion:SfScheduler x:Name="Schedule"
ViewType="Week"
FirstDayOfWeek="Sunday" />
</Window>C# Code-Behind:
csharp
using Syncfusion.UI.Xaml.Scheduler;
public MainWindow()
{
InitializeComponent();
// Create appointment collection
var appointments = new ScheduleAppointmentCollection();
// Add sample appointment
appointments.Add(new ScheduleAppointment
{
StartTime = DateTime.Now.Date.AddHours(10),
EndTime = DateTime.Now.Date.AddHours(12),
Subject = "Client Meeting",
Location = "Conference Room A",
Notes = "Discuss project timeline",
AppointmentBackground = Brushes.LightBlue
});
Schedule.ItemsSource = appointments;
}XAML:
xaml
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
<syncfusion:SfScheduler x:Name="Schedule"
ViewType="Week"
FirstDayOfWeek="Sunday" />
</Window>C#后台代码:
csharp
using Syncfusion.UI.Xaml.Scheduler;
public MainWindow()
{
InitializeComponent();
// 创建预约集合
var appointments = new ScheduleAppointmentCollection();
// 添加示例预约
appointments.Add(new ScheduleAppointment
{
StartTime = DateTime.Now.Date.AddHours(10),
EndTime = DateTime.Now.Date.AddHours(12),
Subject = "客户会议",
Location = "A会议室",
Notes = "讨论项目时间线",
AppointmentBackground = Brushes.LightBlue
});
Schedule.ItemsSource = appointments;
}Common Patterns
常见实现模式
Pattern 1: Custom Appointments with Data Binding
模式1:带数据绑定的自定义预约
csharp
// Custom business object
public class Meeting : INotifyPropertyChanged
{
public string EventName { get; set; }
public DateTime From { get; set; }
public DateTime To { get; set; }
public Brush Color { get; set; }
public bool IsAllDay { get; set; }
}
// ViewModel
public class SchedulerViewModel
{
public ObservableCollection<Meeting> Events { get; set; }
public SchedulerViewModel()
{
Events = new ObservableCollection<Meeting>
{
new Meeting
{
EventName = "Team Standup",
From = DateTime.Now.Date.AddHours(9),
To = DateTime.Now.Date.AddHours(9.5),
Color = Brushes.Green,
IsAllDay = false
}
};
}
}XAML:
xaml
<syncfusion:SfScheduler x:Name="Schedule"
ViewType="Week"
ItemsSource="{Binding Events}">
<syncfusion:SfScheduler.AppointmentMapping>
<syncfusion:AppointmentMapping
Subject="EventName"
StartTime="From"
EndTime="To"
AppointmentBackground="Color"
IsAllDay="IsAllDay" />
</syncfusion:SfScheduler.AppointmentMapping>
</syncfusion:SfScheduler>csharp
// 自定义业务对象
public class Meeting : INotifyPropertyChanged
{
public string EventName { get; set; }
public DateTime From { get; set; }
public DateTime To { get; set; }
public Brush Color { get; set; }
public bool IsAllDay { get; set; }
}
// 视图模型
public class SchedulerViewModel
{
public ObservableCollection<Meeting> Events { get; set; }
public SchedulerViewModel()
{
Events = new ObservableCollection<Meeting>
{
new Meeting
{
EventName = "团队站会",
From = DateTime.Now.Date.AddHours(9),
To = DateTime.Now.Date.AddHours(9.5),
Color = Brushes.Green,
IsAllDay = false
}
};
}
}XAML:
xaml
<syncfusion:SfScheduler x:Name="Schedule"
ViewType="Week"
ItemsSource="{Binding Events}">
<syncfusion:SfScheduler.AppointmentMapping>
<syncfusion:AppointmentMapping
Subject="EventName"
StartTime="From"
EndTime="To"
AppointmentBackground="Color"
IsAllDay="IsAllDay" />
</syncfusion:SfScheduler.AppointmentMapping>
</syncfusion:SfScheduler>Pattern 2: Recurring Weekly Meeting
模式2:每周重复会议
csharp
var recurringMeeting = new ScheduleAppointment
{
StartTime = new DateTime(2026, 3, 24, 14, 0, 0), // Monday 2PM
EndTime = new DateTime(2026, 3, 24, 15, 0, 0),
Subject = "Weekly Status Meeting",
// Recur every Monday for 12 weeks
RecurrenceRule = "FREQ=WEEKLY;BYDAY=MO;COUNT=12",
AppointmentBackground = Brushes.Orange
};csharp
var recurringMeeting = new ScheduleAppointment
{
StartTime = new DateTime(2026, 3, 24, 14, 0, 0), // 周一14点
EndTime = new DateTime(2026, 3, 24, 15, 0, 0),
Subject = "每周状态会议",
// 每周一重复,共12周
RecurrenceRule = "FREQ=WEEKLY;BYDAY=MO;COUNT=12",
AppointmentBackground = Brushes.Orange
};Pattern 3: Resource-Based Scheduling
模式3:基于资源的调度
csharp
// Add resources
Schedule.ResourceCollection = new ObservableCollection<SchedulerResource>
{
new SchedulerResource { Id = "1001", Name = "Dr. Smith", Background = Brushes.Blue },
new SchedulerResource { Id = "1002", Name = "Dr. Jones", Background = Brushes.Green }
};
Schedule.ResourceGroupType = ResourceGroupType.Resource;
// Assign appointment to resource
var appointment = new ScheduleAppointment
{
StartTime = DateTime.Now.AddHours(2),
EndTime = DateTime.Now.AddHours(3),
Subject = "Patient Consultation",
ResourceIdCollection = new ObservableCollection<object> { "1001" }
};csharp
// 添加资源
Schedule.ResourceCollection = new ObservableCollection<SchedulerResource>
{
new SchedulerResource { Id = "1001", Name = "Smith医生", Background = Brushes.Blue },
new SchedulerResource { Id = "1002", Name = "Jones医生", Background = Brushes.Green }
};
Schedule.ResourceGroupType = ResourceGroupType.Resource;
// 为资源分配预约
var appointment = new ScheduleAppointment
{
StartTime = DateTime.Now.AddHours(2),
EndTime = DateTime.Now.AddHours(3),
Subject = "患者咨询",
ResourceIdCollection = new ObservableCollection<object> { "1001" }
};Pattern 4: Timezone-Aware Appointments
模式4:时区感知型预约
csharp
var globalMeeting = new ScheduleAppointment
{
StartTime = new DateTime(2026, 3, 25, 10, 0, 0),
EndTime = new DateTime(2026, 3, 25, 11, 0, 0),
Subject = "Global Team Sync",
StartTimeZone = "Pacific Standard Time",
EndTimeZone = "Pacific Standard Time"
};
// Scheduler displays in local timezone automatically
Schedule.TimeZone = TimeZoneInfo.Local.Id;csharp
var globalMeeting = new ScheduleAppointment
{
StartTime = new DateTime(2026, 3, 25, 10, 0, 0),
EndTime = new DateTime(2026, 3, 25, 11, 0, 0),
Subject = "全球团队同步会议",
StartTimeZone = "Pacific Standard Time",
EndTimeZone = "Pacific Standard Time"
};
// 调度器自动以本地时区显示
Schedule.TimeZone = TimeZoneInfo.Local.Id;Key Properties Overview
核心属性概览
Core Properties
基础属性
| Property | Type | Description | Default |
|---|---|---|---|
| ViewType | SchedulerViewType | Sets the view (Day, Week, WorkWeek, Month, TimelineDay, TimelineWeek, TimelineWorkWeek, TimelineMonth) | Month |
| ItemsSource | IEnumerable | Appointment collection to display | null |
| DisplayDate | DateTime | Currently displayed date | DateTime.Now |
| SelectedDate | DateTime | Currently selected date | DateTime.Now |
| FirstDayOfWeek | DayOfWeek | Starting day of the week | Sunday |
| TimeZone | string | Scheduler's timezone identifier | Local |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| ViewType | SchedulerViewType | 设置日历视图类型(Day、Week、WorkWeek、Month、TimelineDay、TimelineWeek、TimelineWorkWeek、TimelineMonth) | Month |
| ItemsSource | IEnumerable | 要显示的预约集合 | null |
| DisplayDate | DateTime | 当前显示的日期 | DateTime.Now |
| SelectedDate | DateTime | 当前选中的日期 | DateTime.Now |
| FirstDayOfWeek | DayOfWeek | 一周的起始日 | Sunday |
| TimeZone | string | 调度器的时区标识符 | Local |
View Navigation & Configuration
视图导航与配置
| Property | Type | Description | Default |
|---|---|---|---|
| AllowedViewTypes | SchedulerViewType | Allowed view types for navigation | All |
| AllowViewNavigation | bool | Enable/disable view navigation | true |
| ShowDatePickerButton | bool | Show date picker button in header | true |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| AllowedViewTypes | SchedulerViewType | 允许导航的视图类型 | 全部 |
| AllowViewNavigation | bool | 启用/禁用视图导航 | true |
| ShowDatePickerButton | bool | 在头部显示日期选择按钮 | true |
Date Range Properties
日期范围属性
| Property | Type | Description | Default |
|---|---|---|---|
| MinimumDate | DateTime | Minimum date that can be displayed | DateTime.MinValue |
| MaximumDate | DateTime | Maximum date that can be displayed | DateTime.MaxValue |
| BlackoutDates | ObservableCollection<DateTime> | Dates where interaction is disabled (TimelineMonth only) | null |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| MinimumDate | DateTime | 可显示的最小日期 | DateTime.MinValue |
| MaximumDate | DateTime | 可显示的最大日期 | DateTime.MaxValue |
| BlackoutDates | ObservableCollection<DateTime> | 禁用交互的日期(仅TimelineMonth视图支持) | null |
Data Binding & Mapping
数据绑定与映射
| Property | Type | Description | Default |
|---|---|---|---|
| AppointmentMapping | AppointmentMapping | Maps custom objects to ScheduleAppointment properties | null |
| ResourceMapping | ResourceMapping | Maps custom objects to SchedulerResource properties | null |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| AppointmentMapping | AppointmentMapping | 将自定义对象映射到ScheduleAppointment属性 | null |
| ResourceMapping | ResourceMapping | 将自定义对象映射到SchedulerResource属性 | null |
Header Customization
头部定制
| Property | Type | Description | Default |
|---|---|---|---|
| HeaderHeight | double | Height of the scheduler header | 50 |
| HeaderDateFormat | string | Date format string in header | "MMMM yyyy" |
| HeaderTemplate | DataTemplate | Custom template for header | null |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| HeaderHeight | double | 调度器头部高度 | 50 |
| HeaderDateFormat | string | 头部日期格式字符串 | "MMMM yyyy" |
| HeaderTemplate | DataTemplate | 自定义头部模板 | null |
Resource Scheduling
资源调度
| Property | Type | Description | Default |
|---|---|---|---|
| ResourceCollection | ObservableCollection<SchedulerResource> | Collection of scheduler resources | null |
| ResourceGroupType | ResourceGroupType | Grouping mode (Resource, Date, None) | None |
| ResourceHeaderTemplate | DataTemplate | Custom template for resource headers | null |
| ResourceHeaderTemplateSelector | DataTemplateSelector | Template selector for resource headers | null |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| ResourceCollection | ObservableCollection<SchedulerResource> | 调度器资源集合 | null |
| ResourceGroupType | ResourceGroupType | 分组模式(Resource、Date、None) | None |
| ResourceHeaderTemplate | DataTemplate | 自定义资源头部模板 | null |
| ResourceHeaderTemplateSelector | DataTemplateSelector | 资源头部模板选择器 | null |
View-Specific Settings
视图专属设置
| Property | Type | Description | Default |
|---|---|---|---|
| DaysViewSettings | DaysViewSettings | Settings for Day/Week/WorkWeek views | Default |
| MonthViewSettings | MonthViewSettings | Settings for Month view | Default |
| TimelineViewSettings | TimelineViewSettings | Settings for Timeline views | Default |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| DaysViewSettings | DaysViewSettings | Day/Week/WorkWeek视图设置 | 默认值 |
| MonthViewSettings | MonthViewSettings | Month视图设置 | 默认值 |
| TimelineViewSettings | TimelineViewSettings | 时间线视图设置 | 默认值 |
Calendar & Culture
日历与文化
| Property | Type | Description | Default |
|---|---|---|---|
| CalendarIdentifier | string | Calendar system identifier (Gregorian, etc.) | Gregorian |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| CalendarIdentifier | string | 日历系统标识符(如公历) | Gregorian |
UI & Interaction
UI与交互
| Property | Type | Description | Default |
|---|---|---|---|
| ShowBusyIndicator | bool | Shows loading indicator during operations | false |
| EnableToolTip | bool | Enable tooltips on appointments | true |
| ToolTipTemplate | DataTemplate | Custom template for tooltips | null |
| EnableReminder | bool | Enable reminder functionality | false |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| ShowBusyIndicator | bool | 操作期间显示加载指示器 | false |
| EnableToolTip | bool | 启用预约工具提示 | true |
| ToolTipTemplate | DataTemplate | 自定义工具提示模板 | null |
| EnableReminder | bool | 启用提醒功能 | false |
Context Menus
上下文菜单
| Property | Type | Description | Default |
|---|---|---|---|
| AppointmentContextMenu | ContextMenu | Context menu for appointments | Default |
| CellContextMenu | ContextMenu | Context menu for cells | Default |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| AppointmentContextMenu | ContextMenu | 预约上下文菜单 | 默认值 |
| CellContextMenu | ContextMenu | 单元格上下文菜单 | 默认值 |
Drag & Drop
拖放
| Property | Type | Description | Default |
|---|---|---|---|
| DragDropSettings | DragDropSettings | Configure drag-drop behavior | Default |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| DragDropSettings | DragDropSettings | 配置拖放行为 | 默认值 |
Appointment Editing
预约编辑
| Property | Type | Description | Default |
|---|---|---|---|
| AppointmentEditFlag | AppointmentEditFlag | Controls which edit operations are allowed | All |
| AppointmentResizeController | IAppointmentResizeController | Custom resize behavior controller | null |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| AppointmentEditFlag | AppointmentEditFlag | 控制允许的编辑操作 | 全部 |
| AppointmentResizeController | IAppointmentResizeController | 自定义调整大小行为控制器 | null |
Load On Demand
按需加载
| Property | Type | Description | Default |
|---|---|---|---|
| LoadOnDemandCommand | ICommand | Command executed when loading appointments on demand | null |
| 属性 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| LoadOnDemandCommand | ICommand | 按需加载预约时执行的命令 | null |
Key Methods
核心方法
| Method | Description |
|---|---|
| Forward() | Navigate forward by one view interval |
| Backward() | Navigate backward by one view interval |
| SchedulerDateToPoint(DateTime) | Convert date to screen coordinates |
| PointToSchedulerDate(Point) | Convert screen coordinates to date/time |
| 方法 | 描述 |
|---|---|
| Forward() | 按一个视图间隔向前导航 |
| Backward() | 按一个视图间隔向后导航 |
| SchedulerDateToPoint(DateTime) | 将日期转换为屏幕坐标 |
| PointToSchedulerDate(Point) | 将屏幕坐标转换为日期/时间 |
Key Events
核心事件
| Event | Description |
|---|---|
| ViewChanged | Raised when the view type changes |
| DisplayDateChanged | Raised when the display date changes |
| SelectionChanged | Raised when the selected date/appointment changes |
| CellTapped | Raised when a cell is tapped/clicked |
| CellDoubleTapped | Raised when a cell is double-clicked |
| CellLongPressed | Raised when a cell is long-pressed |
| AppointmentTapped | Raised when an appointment is tapped/clicked |
| AppointmentDoubleTapped | Raised when an appointment is double-clicked |
| AppointmentDragStarting | Raised when appointment drag begins (can be cancelled) |
| AppointmentDragOver | Raised while dragging appointment over scheduler |
| AppointmentDrop | Raised when appointment is dropped |
| AppointmentResizeStarting | Raised when appointment resize begins (can be cancelled) |
| AppointmentResizing | Raised while appointment is being resized |
| AppointmentResizeCompleted | Raised when appointment resize completes |
| AppointmentEditorOpening | Raised when appointment editor is opening (can be cancelled) |
| AppointmentEditorClosing | Raised when appointment editor is closing (can be cancelled) |
| HeaderTapped | Raised when header is tapped/clicked |
| 事件 | 描述 |
|---|---|
| ViewChanged | 视图类型变更时触发 |
| DisplayDateChanged | 显示日期变更时触发 |
| SelectionChanged | 选中日期/预约变更时触发 |
| CellTapped | 单元格被点击/轻触时触发 |
| CellDoubleTapped | 单元格被双击时触发 |
| CellLongPressed | 单元格被长按触发 |
| AppointmentTapped | 预约被点击/轻触时触发 |
| AppointmentDoubleTapped | 预约被双击时触发 |
| AppointmentDragStarting | 预约开始拖放时触发(可取消) |
| AppointmentDragOver | 预约拖放经过调度器时触发 |
| AppointmentDrop | 预约完成拖放时触发 |
| AppointmentResizeStarting | 预约开始调整大小时触发(可取消) |
| AppointmentResizing | 预约调整大小过程中触发 |
| AppointmentResizeCompleted | 预约调整大小完成时触发 |
| AppointmentEditorOpening | 预约编辑器打开时触发(可取消) |
| AppointmentEditorClosing | 预约编辑器关闭时触发(可取消) |
| HeaderTapped | 头部被点击/轻触时触发 |
Common Use Cases
常见使用场景
- Meeting Room Scheduler - Manage conference room bookings with resource grouping
- Medical Appointments - Doctor scheduling with patient appointments and recurring slots
- Project Timeline - Track tasks, milestones, and team member assignments
- Event Calendar - Public event management with all-day and multi-day events
- Employee Shift Planning - Resource-based shift scheduling with drag-drop
- Class Schedule - Educational timetables with recurring sessions
- Service Booking - Appointment booking system with availability management
- 会议室调度器 - 按资源分组管理会议室预订
- 医疗预约系统 - 医生排班与患者预约,支持重复时段
- 项目时间线 - 跟踪任务、里程碑与团队成员分配
- 活动日历 - 管理公共活动,支持全天和多天事件
- 员工排班系统 - 基于资源的班次调度,支持拖放调整
- 课程表 - 教育类时间表,支持重复课程
- 服务预订系统 - 预约预订系统,包含可用性管理
Important Considerations
重要注意事项
- Performance: Use LoadOnDemand for large datasets spanning multiple years
- Data Binding: Custom objects must implement INotifyPropertyChanged for updates
- Recurrence: Use RRULE format for recurrence patterns (standard RFC 5545)
- Timezones: Always specify timezones for global applications
- Resources: ResourceIdCollection must match ResourceCollection IDs
- Views: Choose appropriate view based on use case (Day for detailed, Month for overview)
- 性能优化:对于跨多年的大数据集,使用按需加载功能
- 数据绑定:自定义对象必须实现INotifyPropertyChanged以支持更新
- 重复预约:使用RRULE格式定义重复规则(遵循RFC 5545标准)
- 时区处理:全球应用务必指定时区
- 资源匹配:ResourceIdCollection必须与ResourceCollection中的ID匹配
- 视图选择:根据使用场景选择合适的视图(Day视图用于详情,Month视图用于概览)
Next Steps
下一步行动
Start with Getting Started for installation and basic setup, then explore specific features based on your requirements using the navigation guide above.
从快速入门开始学习安装与基础配置,然后根据需求通过上述导航指南探索特定功能。