【发布时间】:2020-10-19 00:40:14
【问题描述】:
这是我长期面临的问题。
假设我们有一个名为 Person 的 POCO 类(INotifyPropertyChanged 是使用 Foldy 及其 [AddINotifyPropertyChangedInterface] 属性提供的)
[AddINotifyPropertyChangedInterface]
public class Person
{
public int Id{ get; set; }
[StringLength(20)]
[Required(ErrorMessage = "Field required")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Field required")]
public string LastName{ get; set; }
}
在 ViewModel 中,我将此类作为属性引用
public class SomeViewModel
{
public Person Person
{
get => person;
set
{
person= value;
SomeMethod();
}
}
// Rest of the code
}
问题是如何在文本框中更改名字时调用“SomeMethod”。
文本框绑定属性如下:
<TextBox Text="{Binding Person.FirstName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged)/>
我试图解决它绑定到:
public string FirstName
{
get => firstName;
set
{
firstName= value;
Person.FirstName=value;
SomeMethod();
}
}
但问题在于用户表单中的验证,因为我使用 POCO 类中的数据注释属性进行验证。
提前感谢您的帮助和时间!
【问题讨论】:
标签: c# wpf properties model binding