public virtual LayerVM DeepClone() { var result = new LayerVM(); result.Length = Length; return(result); }
private void Layers_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { switch (e.Action) { case System.Collections.Specialized.NotifyCollectionChangedAction.Add: for (int i = 0; i < e.NewItems.Count; i++) { LayerVM addedVM = (LayerVM)e.NewItems[i]; LayerVM craftedVM = adapter(addedVM); if (e.NewItems.Count == 0) { Layers.Add(craftedVM); } else { Layers.Insert(e.NewStartingIndex + i, craftedVM); } } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: if (e.OldItems.Count != 1) { throw new InvalidOperationException(); } Layers.RemoveAt(e.OldStartingIndex); break; default: throw new NotImplementedException(); } }