我有一个带有项目的 ObserableCollection,它实现了 INotifyPropertyChanged 接口。这就是我创建它的方式:
var myCollection = new ObservableCollection<MyViewModel>();
myCollection.CollectionChanged += OnCollectionChanged;
_
private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
if (e.Action == NotifyCollectionChangedAction.Remove)
{
foreach (ViewModelBase item in e.NewItems)
{
item.PropertyChanged -= myViewModelPropertyChanged;
}
}
else if (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (ViewModelBase item in e.NewItems)
{
item.PropertyChanged += myViewModelPropertyChanged;
}
}
}
}
现在我的问题是,我需要循环遍历所有项目并删除“myViewModelPropertyChanged”,然后再执行另一个
myCollection = new ObservableCollection<MyViewModel>();
还是这会自动发生?怎么样 myCollection.Clear();
感谢您的任何意见。
干杯约瑟夫