.Net MAUI应用中使用SyncFusion Scheduler,无法获取预约详情
解决.NET MAUI SyncFusion Scheduler点击无法获取预约详情的问题
你需要将e.Appointments中的对象强转为SchedulerAppointment类型,就能访问Subject等预约属性了。原因是e.Appointments的返回类型是IEnumerable<object>,默认无法直接访问实体的具体属性。
修改后的后台代码
private void calendar_Tapped(object sender, SchedulerTappedEventArgs e) { if (e.Appointments.Count > 0) { // 遍历当天所有预约(支持多个预约场景) foreach (var appointment in e.Appointments) { if (appointment is SchedulerAppointment schedulerAppointment) { // 获取预约主题 string appointmentSubject = schedulerAppointment.Subject; // 可直接访问其他属性如StartTime、EndTime、IsAllDay DateTime startTime = schedulerAppointment.StartTime; // 此处添加你的业务逻辑,比如弹窗展示预约详情 } } // 若确定当天仅存在一个预约,可直接取首个元素 // var targetAppointment = e.Appointments.FirstOrDefault() as SchedulerAppointment; // if (targetAppointment != null) // { // string subject = targetAppointment.Subject; // } } }
额外说明
- 确保代码文件顶部已引入SyncFusion Scheduler命名空间:
using Syncfusion.Maui.Scheduler; - 若后续改用自定义预约实体类(而非SyncFusion自带的
SchedulerAppointment),仅需将强转类型替换为你的自定义类即可,逻辑完全通用。
内容的提问来源于stack exchange,提问作者Chris Smith
相关产品推荐
相关产品推荐

