gpt4 book ai didi

c# - 为什么 ObservableCollection 隐藏 INotifyPropertyChanged.PropertyChanged

转载 作者:行者123 更新时间:2023-11-30 16:36:25 24 4
gpt4 key购买 nike

我有一个派生自 ObservableCollection 的类。我想向此类(不是集合中的项目)添加一些属性,但发现它的 PropertyChanged 实现受到保护。由于其 protected ,我认为这就是我尝试绑定(bind)到 XAML 中的这些新属性的尝试失败的原因。

如果没有创建一个卡在实现 INotifyPropertyChanged 并包含这些新属性的类之外的对象,是否有我忽略的解决方法?

最佳答案

如果该类实际上实现了该接口(interface),但显式实现了该接口(interface)并在具体实现上放置了访问修饰符,那么您需要做的就是在接口(interface)本身的上下文中获取该对象,然后您就可以使用它了。例如..

ObservableCollection collection;

collection.PropertyChanged += ...;

这可能会失败,因为它的 PropertyChanged 实现是 protected 。但是,您可以这样做:

ObservableCollection collection;

INotifyPropertyChanged iproperty = collection;

iproperty.PropertyChanged += ...;

这应该可行,因为您将对象作为接口(interface)的一个实例来处理,而不是仅仅通过类定义访问接口(interface)成员。

我没有做过任何 WPF,所以我不知道 ObservableCollection 是否真的实现了 INotifyPropertyChanged,但如果它实现了,那么这应该可行。

关于c# - 为什么 ObservableCollection 隐藏 INotifyPropertyChanged.PropertyChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/812353/

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