无法使用具有扩展类的InitAppointmentImages事件

时间:2014-07-02 10:34:27

标签: c# winforms devexpress scheduler

我有一个XtraScheduler,想在我的约会上展示一些图片。 DevExpress知识库向我展示了这篇文章:https://documentation.devexpress.com/#windowsforms/DevExpressXtraSchedulerSchedulerControl_InitAppointmentImagestopic

他们描述了InitAppointmentImages事件,它看起来就像是我搜索的内容,但我有一个问题。

InitAppointmentImages事件的EventArgs给出了实际的Appoinment。在我的项目中,我有一个从约会延伸的课程。此类用作XtraScheduler(List)的DataSource。所以我认为我可以做到以下几点:

private void myCalendar_InitAppointmentImages(object sender, AppointmentImagesEventArgs e)
{
    MyClass obj = e.Appointment as MyClass;

    if (obj != null)
    {
        AppointmentImageInfo info = new AppointmentImageInfo();
        info.Image = MyImageCollection.Images[0];
        e.ImageInfoList.Add(info);
    }
}

但是obj总是空的! :(我无法理解,因为MyClass是从Appointment扩展而DataSource来自Type MyClass。这个hierarchie工作正常显示这个例子正在工作:

    MyClass obj = (MyClass)MyCalendar.SelectedAppointments[0].GetSourceObject(MyStorage);

1 个答案:

答案 0 :(得分:0)

如果您使用它来获取MyClass对象:

MyClass obj = (MyClass)MyCalendar.SelectedAppointments[0].GetSourceObject(MyStorage);

需要对e.Appointment执行相同操作:

MyClass obj = e.Appointment.GetSourceObject(MyStorage) as MyClass;