我是一个学习Wpf数据绑定功能的新手,最近遇到一个问题让我很困惑。
假设我们在 ViewModel 中有这样的代码:
private Person person;
public Person Person
{
get { return person; }
set
{
SetProperty<Person>(ref person, ref value, ()=>Person);
}
}
忽略可怕的命名。Person
然后我在 Command 的 Execute() 方法中更改了以下属性:
//try 1
private void UpdateInfoExecute()
{
Person.Name="somebody";
Person.Age=22;
}
最后,数据绑定失败。当我像这样更改实现时:
//try 2
Person = new Models.Person() { Age=22,Name="somebody"};
它成功了!
好吧,在我看来,try 1Person
也像try 2一样改变了' 属性。该PropertyChanged
事件侦听属性,并确保在尝试 1Person
之后它会被更改。
我不知道这个理论,谁能指出我错过的关键?