private void DeregisterRowEvents(IndexedDataRow <T> row) { row.Values.ItemsAdded -= new CollectionItemsChangedEventHandler <IndexedItem <Tuple <T, double> > >(ValuesOnItemsAdded); row.Values.ItemsMoved -= new CollectionItemsChangedEventHandler <IndexedItem <Tuple <T, double> > >(ValuesOnItemsMoved); row.Values.ItemsRemoved -= new CollectionItemsChangedEventHandler <IndexedItem <Tuple <T, double> > >(ValuesOnItemsRemoved); row.Values.ItemsReplaced -= new CollectionItemsChangedEventHandler <IndexedItem <Tuple <T, double> > >(ValuesOnItemsReplaced); row.Values.CollectionReset -= new CollectionItemsChangedEventHandler <IndexedItem <Tuple <T, double> > >(ValuesOnCollectionReset); }
protected IndexedDataRow(IndexedDataRow <T> original, Cloner cloner) : base(original, cloner) { values = new ObservableList <Tuple <T, double> >(original.values.Select(x => Tuple.Create <T, double>(x.Item1, x.Item2)).ToList()); VisualProperties = cloner.Clone(original.visualProperties); }