C# Silverlight SDK日期选择器未将所选日期重置为今天
我对日期选择器有以下定义: MyObject是一个包含StartDate的类,StartDate定义为可为空的日期时间 我通过Prism使用MVVM,MyObject被正确绑定 第一次显示此视图时,日期按预期为空,当我单击选择器时,日历将显示,并突出显示今天的日期 如果我选择的日期不是今天,或者显示的记录中填写了日期,那么当我清空表单以创建新对象时:C# Silverlight SDK日期选择器未将所选日期重置为今天,c#,silverlight,datepicker,C#,Silverlight,Datepicker,我对日期选择器有以下定义: MyObject是一个包含StartDate的类,StartDate定义为可为空的日期时间 我通过Prism使用MVVM,MyObject被正确绑定 第一次显示此视图时,日期按预期为空,当我单击选择器时,日历将显示,并突出显示今天的日期 如果我选择的日期不是今天,或者显示的记录中填写了日期,那么当我清空表单以创建新对象时: this.MyObject = new MyObjectClass(); 单击选择器时高亮显示的日期是以前选择的日期 因此,如果记录显示2009
this.MyObject = new MyObjectClass();
单击选择器时高亮显示的日期是以前选择的日期
因此,如果记录显示2009年5月1日,这将是在选择器中突出显示的内容。我可以将StartDate设置为DateTime.Today,这是正确显示的,但并不意味着日期以我不想要的形式显示
那么,为什么不将日期设置为null将选择器中选定的日期重置为今天呢?不确定您是否只是在问题中忽略了这一点,但如果您希望编程更改显示在UI、ViewModel和MyObject类上
应实现INotifyPropertyChanged。具体来说,VM的MyObject属性和MyObject类StartDate属性设置程序应该触发PropertyChanged事件。解决方案是在日期选择器上重置DisplayDate属性:
要添加此功能,我们必须对数据采集器进行子类化。是的,我只是忽略了它。一切都实现InotifyProperty更改。正如我所说,将开始日期设置为今天可以正确地更新它。
this.MyObject = new MyObjectClass();
this.SelectedDateChanged += (s, e) =>
{
if (this.SelectedDate == null)
{
this.DisplayDate = DateTime.Today;
this.Text = string.Empty;
}
};