【发布时间】:2019-06-18 11:45:48
【问题描述】:
我想创建自己的INotifyCollectionChanged 实现,但我希望可观察集合成为字典。比如:
MyObservableDictionary<KeyValuePair<TKey, TValue>>
在阅读 this article on MSDN 关于泛型之后,您似乎可以将其定义为
public class MyObservableDictionary<T> : INotifyCollectionChanged where T : struct
{
public event NotifyCollectionChangedEventHandler CollectionChanged;
}
但是这个
- 不强制结构应该是类型 键值对和
- 我不知道如何在课堂上引用
TKey和TValue。
有什么解决办法吗?
【问题讨论】:
-
MyObservableDictionary<TKey, TValue>? -
public class MyObservableDictionary<TKey, TValue> : IDictionary<TKey, TValue>, INotifyCollectionChanged where TValue : struct {...}- 类是字典,可观察的并且只能将值类型 (strict) 作为值。如果您希望 key 也成为结构,请添加where TKey : struct -
ObservableDictionary的实现有几个例子,为什么要自己创建呢?链接:stackoverflow - .NET ObservableDictionary、Github - kzu/ObservableDictionary.cs