我有一个派生自ObservableCollection的类,如下所示
public class Accounts : ObservableCollection<Account>
{
public Accounts(){}
// some code
// mode plus plus code
}
在我有的其他地方
Accounts.CollectionChanged += Accounts_CollectionChanged;
现在每当我更改/更新或添加帐户中的任何内容时,以下事件都会触发,到目前为止一切正常。
void Accounts_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
MessageBox.Show("Add");
break;
case NotifyCollectionChangedAction.Remove:
MessageBox.Show("Remove");
break;
case NotifyCollectionChangedAction.Replace:
MessageBox.Show("Replace");
break;
case NotifyCollectionChangedAction.Reset:
MessageBox.Show("Reset");
break;
}
}
然而,我的问题(它的痛苦)是它给我的第一个事件是“重置”#39;总是,无论我做什么(更新帐户中的任何值或添加另一个帐户)。然后,如果集合中有2个项目,则添加&#39;事件将触发两次但是替换事件DOESN&#39; T Fire。
我遇到的第二个问题是(第一个问题),如果我在集合中添加任何东西,并且如果集合中已经有4个项目,则会生成&#39;添加&#39;活动5次(现有项目的前4次,新项目的第5次)我不知道如果做错了什么,或者我不知道如何解决它。知道需要做些什么来处理这个问题吗?
任何帮助将不胜感激