gpt4 book ai didi

winforms - 当子列表更改时,我应该如何处理 INotifyPropertyChanged

转载 作者:行者123 更新时间:2023-12-02 21:40:58 24 4
gpt4 key购买 nike

我有一组数据对象,用于实现 INotifyPropertyChanged 接口(interface)的数据绑定(bind),并且我正在尝试弄清楚如何处理复杂类型的属性。

如果我有类似的东西


class C {
private string text;
public string Text {
get { return text; }
set {
if(Text != value) {
text = value;
OnPropertyChanged("Text");
}
}
}
}

我知道该怎么做,但是如果属性是可变的怎么办,大概我也应该通知类型的更改。

如果属性本身实现了 INotifyPropertyChanged,大概我可以处理该事件并将其冒泡,但是如果引发 ListChangedEvent(假设它是 IBindingList),我是否应该执行相同的操作?

这是 .NET 2.0,因此不允许依赖属性等。

最佳答案

如果您有公开复杂类型的属性,则无需在复杂类型的属性更改时引发 PropertyChanged 事件,只需将实例更改为复杂类型时即可。当复杂类型的属性之一发生更改时,它应该引发它自己的 PropertyChanged 事件(您不必将该事件冒泡到父对象)。

重申一下,您应该仅在属性值更改时引发 PropertyChanged 事件,而不是在子属性更改时引发。您提供的示例代码是您的所有属性集应该是什么样子的。

关于winforms - 当子列表更改时,我应该如何处理 INotifyPropertyChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/571611/

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