我有一个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);
答案 0 :(得分:0)
如果您使用它来获取MyClass
对象:
MyClass obj = (MyClass)MyCalendar.SelectedAppointments[0].GetSourceObject(MyStorage);
需要对e.Appointment
执行相同操作:
MyClass obj = e.Appointment.GetSourceObject(MyStorage) as MyClass;