我正在寻找一个INotifyCollectionChanged的实施Stack和Queue。我可以自己动手,但我不想重新发明轮子。
INotifyCollectionChanged
Stack
Queue
使用堆栈和队列(几乎按定义),您只能访问堆栈的顶部或队列的头部。这就是它们与区别的地方List。(因此,这就是为什么您找不到一个的原因)
List
为了回答您可以编写自己的问题的方法,我可以通过从派生 ObservableCollection,然后在将实现Push为Insertat偏移量0 的堆栈中实现(并以pop的形式返回索引0,然后再RemoveAt索引0);或者使用队列,您可以Add将列表Enqueue拖到的末尾,然后像抓取堆栈一样抓取并删除第一个项目Dequeue。的Insert,Add并且RemoveAt行动将在底层调用ObservableCollection等原因CollectionChanged被解雇的事件。
ObservableCollection
Push
Insert
RemoveAt
Add
Enqueue
Dequeue
CollectionChanged
您可能还说您只是想绑定或在您应该有权访问的一项发生更改时收到通知。您将再次创建从Stack或Queue派生的自己的类,并在以下情况下手动触发CollectionChanged事件: