SyncFusion Scheduler - 难以获取预约详细信息

问题描述 投票:0回答:1

我有一个 .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
c# maui scheduler syncfusion
1个回答
0
投票

Appointments
object

的集合
public ReadOnlyCollection<object> Appointments { get; }

所以你需要投射它

((SchedulerAppointment)e.Appointments[0]).Subject
© www.soinside.com 2019 - 2024. All rights reserved.