我有一个 .Net MAUI 应用程序(目标平台以及 iOS 和 Win) 我第一次尝试使用 SyncFusion Scheduler..
我一切正常,但当我点击调度程序时,我很难获取预约详细信息..
XAML:
<scheduler:SfScheduler x:Name="calendar" View="Month" FirstDayOfWeek="Monday" AllowedViews="Week ,Month"
TodayHighlightBrush="Gray" AppointmentsSource=" {Binding SchedulerEvents}" Tapped="calendar_Tapped" >
<scheduler:SfScheduler.MonthView>
<scheduler:SchedulerMonthView AppointmentDisplayMode="Indicator" />
</scheduler:SfScheduler.MonthView>
<scheduler:SfScheduler.BindingContext >
<local:SchedulerControlViewModel>
</local:SchedulerControlViewModel>
</scheduler:SfScheduler.BindingContext>
</scheduler:SfScheduler>
背后代码:
private void calendar_Tapped(object sender, SchedulerTappedEventArgs e)
{
if (e.Appointments.Count < 0)
{
//No Appointment - no problem
}
else
{
//Appointment on date tapped
//// HOW DO I GET THE APPOINTMENT DETAILS FROM e.Appointments (such as the appointment subject.
}
}
查看型号:
namespace MyGolfSocietyApp.ViewModels
{
public class SchedulerControlViewModel
{
public ObservableCollection<SchedulerAppointment> SchedulerEvents { get; set; }
public SchedulerControlViewModel()
{
this.SchedulerEvents = new ObservableCollection<SchedulerAppointment>
{
new SchedulerAppointment
{
StartTime = new DateTime(2023, 8, 5,00,01,01),
EndTime = new DateTime(2023, 8, 5,23,01,01),
Subject = "TEST Appointment",
IsAllDay = true
}
};
}
}
}
Tapped 事件处理程序“calendar_Tapped”触发正常,但我很难获取约会的内容。 我确信这是超级基本的 C#,但我真的很挣扎 - 希望你们能帮助我
我可以通过调试日志(立即窗口)看到数据正在从视图模型返回:
?e.Appointments
Count = 1
[0]: {Syncfusion.Maui.Scheduler.SchedulerAppointment}
?e.Appointments[0]
{Syncfusion.Maui.Scheduler.SchedulerAppointment}
base: {Syncfusion.Maui.Scheduler.SchedulerRegionBase}
ActualEndTime: {System.DateTime}
ActualStartTime: {System.DateTime}
DataItem: (null)
EndTimeZone: {System.TimeZoneInfo}
Id: 311937363
IsAllDay: true
IsReadOnly: false
Location: ""
Notes: ""
RecurrenceId: (null)
Reminders: (null)
StartTimeZone: {System.TimeZoneInfo}
Subject: "TEST Appointment"
Type: Syncfusion.Maui.Scheduler.SchedulerAppointmentType.Normal
Appointments
是object
的集合
public ReadOnlyCollection<object> Appointments { get; }
所以你需要投射它
((SchedulerAppointment)e.Appointments[0]).Subject