J'ai un ObserableCollection avec des éléments, qui implémentent l'interface INotifyPropertyChanged. Voici comment je le crée:C#: Supprimer des événements de ObservableCollection?
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;
}
}
}
}
Maintenant, ma question est, doi besoin de caniveau en boucle tous les articles et enlever le "myViewModelPropertyChanged" avant de faire une autre
myCollection = new ObservableCollection<MyViewModel>();
ou est-ce que cela se produit automatiquement? Qu'en est-il un myCollection.Clear();
Merci pour toute contribution.
Vive Joseph