相对较新的 MVVM 东西,我遇到以下问题:
我有一个对象“用户”,这个对象公开了一些属性,如用户名、电子邮件等。在 mvvm 模型中,我有一个属性:
private IUser currentUser;
public IUser CurrentUser
{
get
{
return this.currentUser;
}
set
{
this.currentUser = value;
this.OnPropertyChanged("CurrentUser");
}
}
private void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
在 XAML 中,TextBox 的绑定方式如下:
Text="{Binding CurrentUser.Email, Mode=TwoWay}"
更改电子邮件地址时,不会触发 OnPropertyChanged,因此其他代码(作为 ICommands)无法“工作”。
有没有一种方法可以在用户更改 TextBox 中的文本时触发 OnPropertyChanged?
TIA,保罗