0

我编写控制台应用程序,它有队列集合,用作消息工厂。

有没有办法让集合在它变空时引发事件。

我只是不想开始自己拉它,不时检查它。

我想过使用ObservableCollection,但是当它变空时,我没有看到一种方法来实现引发事件。

感谢帮助。

4

2 回答 2

5

ObservableCollection当集合的内容改变时触发它的CollectionChanged事件。只需钩住它,然后在您的事件处理程序中,检查集合的Count == 0.

于 2013-07-02T12:38:33.243 回答
0

您可以继承ObservableCollectionEx并添加您自己的事件:

    public class ObservableCollectionEx<T> : ObservableCollection<T>
    {
        public event EventHandler CollectionEmpty;

        protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
        {
            if (this.Count == 0)
            {
                var eventCopy = this.CollectionEmpty;
                if (eventCopy  != null)
                {
                    eventCopy(this, EventArgs.Empty);
                }
            }

            base.OnCollectionChanged(e);
        }
    }
于 2013-07-02T12:40:54.103 回答