【发布时间】:2011-01-13 15:27:48
【问题描述】:
所以我有一个像这样设置的项目
Class Dataclass
{
var data
var data;
var data;
}
class DataViewModel
{
private Dataclass thing;
public string thingPropertyName = "thing";
public Dataclass Thing
{
get { return thing; }
set { thing = value; RaisedPropertyChanged(thingPropertyName);}
}
}
所以这是我的问题:如果我通过 ModelView 类中的 Thing 字段绑定到子属性,如果类的任何成员发生更改,绑定不会更新,只有当整个对象发生更改时,我相信是故意的。
我怎样才能解决这个问题,以便如果我对包含的 Dataclass 的成员做任何事情,我的绑定会正确更新?
我看到的第一件事是将子类的每个元素包装到父类的属性中,如下所示:
public var Data
{
get { return thing.Data; }
set { thing.Data = value; RaisePropertyChanged(DataProperyName);}
}
这可行,但是在初始化子类对象时我仍然遇到问题。我能看到的唯一解决方案是在初始化类时为每个元素手动调用 RaisedPropertyName() 。这似乎是一种不太理想的方法。我希望会有更好的方法。谢谢。
【问题讨论】:
-
漂亮的头像(让我想起了别人的):)
标签: silverlight mvvm mvvm-light