xaml:
<TextBox Text="{Binding EmailField.Email, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
datacontext:
public class MainWindowViewModel
{
private EmailModel _email = new EmailModel() {Email = "test@test.com"};
public EmailModel EmailField
{
get { return _email; }
set { _email = value; }
}
}
型号:
public class EmailModel
{
public string Email { get; set; }
}
使用上面的代码,我可以看到EmailField.Email的价值。
问题:我应该更改哪些内容可以从UI更新EmailField.Email?
提前致谢!
答案 0 :(得分:1)
您可以直接在视图中设置EmailField
属性的唯一方法是编写IValueConverter
以从string
(输入TextBox
)转换为EmailModel
,但我不建议这样做。
为什么不在视图模型中添加属性,如下所示:
public string Email
{
get { return _email.Email; }
set
{
_email.Email = value;
this.OnPropertyChanged("Email"); //you will need to implement INotifyPropertyChanged
}
}
然后,您可以绑定到视图模型Email
属性,您的内部电子邮件对象将被正确更新,并且当值更改时,您的视图模型将在属性设置器中得到通知。