DEV SchedulerController 子窗口Appointment范例摸索

DEV SchedulerController 子窗口Appointment实例摸索

最近在做一个会议登记模块,需要用到SchedulerControl控件,一些学习心得在这里记录下。

自定义appointment窗口

  1.新建SchedulerControl1_EditAppointmentFormShowing事件,

  { 

    e.Form = new CustomAppointmentForm(this.schedulerControl1, e.Appointment);//CustomAppointmentForm可以是自己任意新建窗口。

    e.AllowResize = false;

  } 

  2.CustomAppointmentForm后台需要添加类CustomAppointmentForm

 1 public class CustomAppointmentFormController : AppointmentFormController
 2   { 
 3     public CustomAppointmentFormController(SchedulerControl control, Appointment apt): base(control, apt)
 4     {
 5     }
 6     public event PropertyChangedEventHandler ProperyChanged;
 7 
 8     protected override void ApplyChangesCore()
 9     {
10       base.ApplyChangesCore();
11     }
12 
13   }

  3.CustomAppointmentForm添加构造函数

 1 public CustomAppointmentForm(SchedulerControl control, Appointment apt)
 2   {
 3     if (control == null || apt == null)
 4     throw new ArgumentNullException("control");
 5     if (control == null || apt == null)
 6     throw new ArgumentNullException("apt");
 7 
 8     this.control = control;
 9     this.controller = new CustomAppointmentFormController(control, apt);
10     this.apt = apt;
11     //dateEdit1.DateTime = Convert.ToDateTime (a);
12     //dateEdit1.Text = a;
13     dateEdit1.EditValue = DateTime.Now.TimeOfDay;
14     InitializeComponent();
15   }

  4.实例化刚才定义类同时定义所需属性

1      SchedulerControl control;
2         CustomAppointmentFormController controller;
3         Appointment apt;
4      public CustomAppointmentFormController Controller { get { return controller; } }
5         public SchedulerControl Control { get { return control; } }
6         public Appointment Appointment { get { return apt; } }

  5.前台开始进行新建窗口与SchedulerControl控件属性的绑定。(使用binding)

 1          <TextBlock x:Name="label5" Margin="0,0,4,4" 
 2                 HorizontalAlignment="Left" 
 3                 Grid.Row="1" Grid.Column="0" 
 4                 Text="开始时间:" />
5   <dxe:DateEdit x:Name="dateStart" Margin="0,0,4,4" 6 Grid.Row="1" Grid.Column="1" 7 EditValue="{Binding Controller.DisplayStartDate, Mode=TwoWay}"/>
8   <dxe:ButtonEdit x:Name="timeStart" Margin="0,0,0,4" 9 Grid.Row="1" Grid.Column="2" 10 AllowDefaultButton="False" 11 MaskType="DateTime" DisplayFormatString="{Binding TimeEditMask}" 12 Mask="{Binding TimeEditMask}" 13 EditValue="{Binding Controller.DisplayStartTime, Converter={StaticResource timeSpanToDateTimeConverter}, Mode=TwoWay}" 14 IsEnabled="{Binding IsChecked, Converter={StaticResource ResourceKey=invertedBoolConverter}, ElementName=chkAllDay}"/>

 

相关内容推荐