Envolver ObservableCollection en C#
-
27-10-2019 - |
Pregunta
tengo razón para envolver una instancia de ObservableCollection<T>
en otro tipo.
Estoy implementando ICollection<T>
en mi nuevo tipo. Eso es sencillo. También estoy implementando INotifyCollectionChanged
, que significa implementar
public event NotifyCollectionChangedEventHandler CollectionChanged;
La mejor ruta que se me ocurre para implementar esto es colocar código adicional en mi implementación de ICollection<T>
, como esto:
public void Add(T item)
{
Collection.Add(item);
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item));
}
(La colección es la instancia de ObservableCollection<T>
que estoy envolviendo).
¿Hay alguna forma de aprovechar la implementación de INotifyCollectionChanged
¿Esa colección proporciona, en lugar de volver a implementarla yo mismo?
Solución
Sí. Cuando asigna el valor de su Collection
propiedad o campo, manejo su CollectionChanged Evento:
Collection = new ObservableCollection<T>();
Collection.CollectionChanged += this.HandleCollectionChanged;
Luego, en el método HandLecollectionChanged, eleva el evento CollectionChanged del objeto.