void ListenToCollectionChanges() { if (m_vector == null) { throw new InvalidOperationException("Backing vector not set"); } var incc = m_vector as INotifyCollectionChanged; if (incc != null) { incc.CollectionChanged += OnCollectionChanged; m_notifyCollectionChanged = incc; } else { var bindableObservableVector = m_vector as IBindableObservableVector; if (bindableObservableVector != null) { bindableObservableVector.VectorChanged += OnBindableVectorChanged; m_bindableObservableVector = bindableObservableVector; } else { var observableVector = m_vector as IObservableVector <object>; if (observableVector != null) { observableVector.VectorChanged += OnVectorChanged; m_observableVector = observableVector; } } } }
void OnBindableVectorChanged(IBindableObservableVector sender, object e) { OnVectorChanged(default, (IVectorChangedEventArgs)e);
private void userList_VectorChanged(IBindableObservableVector vector, object e) { VectorChanged?.Invoke(this, e); OnPropertyChanged(nameof(Count)); }
void OnBindableVectorChanged(IBindableObservableVector sender, object e) { OnVectorChanged( sender as IObservableVector <object>, e as IVectorChangedEventArgs); }