【发布时间】:2013-02-07 11:43:58
【问题描述】:
我的视图模型类中有一个 DateTime 属性(例如 DateVal),视图中有一个 DatePicker 控件。
<DatePicker Grid.Column="1"
Width="100"
Height="30"
SelectedDate="{Binding DateVal,ValidatesOnDataErrors=True}"/>
问题是,如果用户删除显示在 Datepicker 控件文本框中的日期,DateVal 属性不会改变它的值。如何跟踪用户已删除日期选择器文本框中显示的日期? 问候, 阿尼尔班
日期选择器控件如下所示 现在,如果用户只是删除日期选择器文本框中显示的日期,则控件如下所示 此时 DateVal 的值与以前相同。 仅当用户单击日历图标时 Date 才被分配一个 null 值。 当用户将文本框设为空时,如何跟踪更改?
ViewModel 代码
public DateTime? DateVal
{
get
{
return this.dateVal;
}
set
{
this.dateVal = value;
this.OnPropertyChanged("DateVal");
}
}
xml 代码
<DatePicker Name="datePickerDateVal"
Grid.Column="1"
Width="100"
Height="30"
SelectedDate="{Binding DateVal,ValidatesOnDataErrors=True}"
Text="{Binding DateVal,ValidatesOnDataErrors=True,UpdateSourceTrigger=PropertyChanged}" />
我希望当用户清除 Date Picker 文本框时必须调用 DateVal 的 setter 属性
【问题讨论】:
标签: wpf validation data-binding mvvm datepicker