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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top