【发布时间】:2013-03-14 12:24:34
【问题描述】:
我是一个学习Wpf数据绑定功能的新人,最近遇到了一个让我很困惑的问题。
假设我们在 ViewModel 中有这样的代码:
private Person person;
public Person Person
{
get { return person; }
set
{
SetProperty<Person>(ref person, ref value, ()=>Person);
}
}
忽略可怕的命名。然后我在命令的 Execute() 方法中更改了Person 属性如下:
//try 1
private void UpdateInfoExecute()
{
Person.Name="somebody";
Person.Age=22;
}
最后,数据绑定失败。当我像这样更改实现时:
//try 2
Person = new Models.Person() { Age=22,Name="somebody"};
成功了!
嗯,在我看来,try 1 也像 try 2 一样改变了Person 的属性。 PropertyChanged 事件监听 Person 属性,并确保它会在 try 1 之后被更改。
我不知道这个理论,谁能指出我错过的关键?
【问题讨论】:
标签: wpf data-binding mvvm