我是一个学习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之后它会被更改。
我不知道这个理论,谁能指出我错过的关键?