martedì 26 ottobre 2010

DotNet - CollectionChanged (Workaround)

C# 4.0

Una proprietà di tipo ObservableCollection<T> ( Plus) di un oggetto (Item) per notificare l’aggiunta, la cancellazione o l’aggiornamento di un elemento deve agganciare l’evento “CollectionChanged”, quindi:

_currentItem.Plus.CollectionChanged += CurrentPlusPropertyChanged;

private void CurrentPlusPropertyChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
              
        }

Si è visto però che per quanto riguarda l’aggiornamento questo evento non scatta e ad oggi non c’è una spiegazione ufficiale su questa anomalia. Bisogna quindi adottare questo workaround: agganciare l’evento PropertyChanged di ogni singolo elemento delle collection;

foreach (Plu plu in _currentItemProduct.Plus)
                    {
                        plu.PropertyChanged += CurrentPluPropertyChanged;
                    }

private void CurrentPluPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
             
        }