INotifyCollectionChanged 在哪里?

Where is INotifyCollectionChanged?

我正在尝试使用 MS 的 ObservableConcurrentDictionary 示例,但我 运行 遇到了一个完全出乎意料的问题。

INotifyCollectionChanged 接口未在 System.Collections.Specialized 命名空间中找到。该项目是 WinForms,我尝试将 .NET 3.5 和 3.5 Client Profile 作为目标,但没有成功,尽管 MSDN 表示它受支持。在包含集合的程序集中找不到任何内容,所以我想我也没有遗漏任何引用。 Google 搜索没有结果,显然我是全世界唯一遇到这种问题的人。

这到底是怎么回事?

这是截图。请注意 System.Collections.Specialized 是如何标记为未使用的。

在 .NET 3.5 中,INotifyCollectionChanged 被编译为 WindowsBase.dll. Only in .NET 4.0 was it moved to the core System.dll 的一部分。您必须添加对 WindowsBase 的引用才能访问它。

但是,我不知道 INotifyPropertyChanged/INotifyCollectionChanged 与 WinForms 相关 - 它们是 WPF MVVM 绑定体验的核心部分。您确定它们是您要使用的工具吗?