Domanda

ho ragione per avvolgere un'istanza di ObservableCollection<T> in un altro tipo.

sto implementando ICollection<T> nel mio nuovo tipo. Questo è semplice. Sto anche attuare INotifyCollectionChanged, il che significa attuazione

public event NotifyCollectionChangedEventHandler CollectionChanged;

Il percorso migliore che posso pensare di implementare questo è quello di mettere un codice aggiuntivo nel mio attuazione ICollection<T>, in questo modo:

public void Add(T item)
{
    Collection.Add(item);
    if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item));
}

(Collection è l'istanza di ObservableCollection<T> che io sono avvolgimento).

C'è un modo per sfruttare l'attuazione di INotifyCollectionChanged che fornisce Collection, piuttosto che ri-attuazione da solo?

È stato utile?

Soluzione

Sì. Quando si assegna il valore della vostra proprietà Collection o di un campo, maniglia la sua evento CollectionChanged:

Collection = new ObservableCollection<T>();
Collection.CollectionChanged += this.HandleCollectionChanged;

Poi nel metodo HandleCollectionChanged, si alza proprio evento CollectionChanged dell'oggetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top