DevExpress XtraScheduler挂起添加约会到存储

时间:2012-08-01 14:43:07

标签: devexpress

我有一个XtraScheduler SchedulerControl配置如下:

private DevExpress.XtraScheduler.SchedulerControl _SchedulerControl;
public DevExpress.XtraScheduler.SchedulerControl ConvSchedulerControl
{
    get
    {
        if (_SchedulerControl == null)
        {
            _SchedulerControl = new DevExpress.XtraScheduler.SchedulerControl();

            _SchedulerControl.Storage = new SchedulerStorage();
            _SchedulerControl.Storage.Appointments.Mappings.Subject = "StandingOrderIDString";
            _SchedulerControl.Storage.Appointments.Mappings.Start = "ScheduledDate";
            _SchedulerControl.Storage.Appointments.Mappings.RecurrenceInfo = "RecurrenceInfo";
            _SchedulerControl.Storage.Appointments.Mappings.Type = "Type";

            _SchedulerControl.Storage.Appointments.CustomFieldMappings.Add(new DevExpress.XtraScheduler.AppointmentCustomFieldMapping("Inactive", "Inactive"));
            _SchedulerControl.Storage.Appointments.CustomFieldMappings.Add(new DevExpress.XtraScheduler.AppointmentCustomFieldMapping("StandingOrderKEY", "StandingOrderKEY"));

            BindingSource bs = new BindingSource();
            bs.DataSource = new List<StandingOrder>();
            _SchedulerControl.Storage.Appointments.DataSource = bs;
        }
        return _SchedulerControl;
    }
}

我正在尝试以编程方式添加具有重复信息的约会,如http://help.devexpress.com/#WindowsForms/CustomDocument6201中给出的示例所示。但是,当方法执行到达将创建的约会添加到存储的最后一行(指示)时,它会“挂起”。没有例外;我让它运行了15分钟没有变化:

public void SetRecurrence(DateTime startDate, DateTime? endDate)
{
    Appointment appointmentObj = ConvSchedulerControl.Storage.CreateAppointment(AppointmentType.Pattern);

    if (endDate != null &&
        endDate != DateTime.Parse("12/31/2999"))
    {
        appointmentObj.End = (DateTime)endDate;
    }
    else
    {
        appointmentObj.RecurrenceInfo.Range = RecurrenceRange.NoEndDate;
    }

    appointmentObj.Start = startDate;
    appointmentObj.RecurrenceInfo.Type = RecurrenceType.Weekly;
    appointmentObj.RecurrenceInfo.WeekDays = WeekDays.Monday;
    appointmentObj.AllDay = true;

//Program execution reaches this line, but never proceeds past it.
    ConvSchedulerControl.Storage.Appointments.Add(appointmentObj);
}

我认为配置存在问题,导致存储无法成功添加约会,但我无法提供有关该主题的任何其他信息。有谁知道为什么这种方法不适合在存储中添加约会,以及如何纠正它?

1 个答案:

答案 0 :(得分:1)

您未能提供&#39;结束&#39;领域。这是必需的映射。老实说,我只是在设计师中创建了一个日历。当您将SchedulerControl放置到窗体/控件上时,设计器为您提供的一件事就是&#34; Mappings Wizard&#34;。 &#39;开始&#39;并且&#39;结束&#39;字段在向导中标记为必需。