gpt4 book ai didi

silverlight - 为类/结构的所有成员提高 INotifyPropertyChanged?

转载 作者:行者123 更新时间:2023-12-05 01:27:22 25 4
gpt4 key购买 nike

所以我有一个像这样设置的项目

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 字段绑定(bind)到一个子属性,如果类的任何成员发生变化,绑定(bind)不会更新,只有当整个对象发生变化时,我相信是故意的。

我怎样才能解决这个问题,以便在我对包含的数据类的成员做任何事情时,我的绑定(bind)能正确更新?

我首先看到的是将子类的每个元素包装到父类的属性中,如下所示:

public var Data
{
get { return thing.Data; }
set { thing.Data = value; RaisePropertyChanged(DataProperyName);}
}

这是可行的,但是在初始化子类对象时我仍然遇到问题。我能看到的唯一解决方案是在初始化类时为每个元素手动调用 RaisedPropertyName()。这似乎不是最佳方法。我希望有更好的方法。谢谢。

最佳答案

在大多数情况下,调用 RaisePropertyChanged(null)(假设这最终会调用适当的 INotifyPropertyChanged 事件委托(delegate),并将 null 作为 args 结构中的属性名称参数)将告诉所有绑定(bind)的监听器刷新。

关于silverlight - 为类/结构的所有成员提高 INotifyPropertyChanged?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4681751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com