我正在使用带有MVVM模式的Avalon DatePicker控件。 我将此控件的CurrentlySelectedDate绑定到我的ViewModel中的属性,如下所示:
<my:DatePicker x:Name="dtpBirthDate" Cursor="Hand" DatesSelectionMode="Single" OverridesDefaultStyle="False" CurrentlySelectedDate="{Binding Path=BirthDate}" />
其中BirthDate是我的ViewModel类中DateTime类型的属性:
public DateTime BirthDate
{
get { return _patient.BirthDate; }
set
{
if (value == _patient.BirthDate)
return;
_patient.BirthDate = value;
base.OnPropertyChanged("BirthDate");
}
}
但是,当我从用户界面更改值时,不会发生此属性的更改。 有人可以解释一下我做错了什么吗? 我仅限于.NET 3.0。
答案 0 :(得分:1)
解决方案是添加UpdateSourceTrigger = PropertyChanged,Mode = TwoWay,如下所示:
<my:DatePicker x:Name="dtpBirthDate" Cursor="Hand" DatesSelectionMode="Single"
OverridesDefaultStyle="False"
CurrentlySelectedDate="{Binding Path=BirthDate, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Validation.ErrorTemplate="{x:Null}"></my:DatePicker>
答案 1 :(得分:0)
请尝试将BirthDate绑定到SelectedDate属性而不是CurrentSelectedDate。
此致