我的 WPF ListView 控件有一个奇怪的行为。
ListViews ItemSource 是 Observable 集合。ItemSource 会定期更新。
当我选择其中一个项目然后选择其他项目并且没有更新项目时,一切正常。
但是当我选择一个项目时,女巫在我站立时更新,然后选择其他项目,现在我选择了两个项目而不是一个。
当我查看调试器时,我看到了 SelectionChanged 事件的事件参数。我看到添加的项目是好的,但没有删除的项目。
有谁知道有什么问题?
谢谢!
编辑:
我的可观察集合:
protected class CustomObservableCollection : ObservableCollection<T>
{
public void Refresh()
{
ListCollectionView lcv = (ListCollectionView)(CollectionViewSource.GetDefaultView(this));
lcv.Refresh();
}
}
当某些项目发生变化时调用的更新方法:
public void RefreshItem(T domainObject)
{
foreach (T item in obsCollection) {
if (!DomainObjectComparer.Equals(domainObject, item)) continue;
DomainObjectCopier.CopyProperties(domainObject, item);
obsCollection.Refresh();
break;
}
}