private void OnListChanged(Object o, ListChangeEventArgs e) { var this_as_t = this.AssertCast <T>(); var eqc = EqualityComparer <T> .Default; foreach (T c in e.NewItems) { OnChildAdded(c); if (ChildAdded != null) { ChildAdded(c); } if (c != null && !eqc.Equals(c.Parent, this_as_t)) { c.Parent = this_as_t; } } foreach (T c in e.OldItems) { OnChildRemoved(c); if (ChildRemoved != null) { ChildRemoved(c); } if (c != null && eqc.Equals(c.Parent, this_as_t)) { c.Parent = null; } } }
public static void Apply <T>(this IList <T> list, ListChangeEventArgs changes) { var si = changes.NewStartingIndex == -1 ? list.Count : changes.NewStartingIndex; switch (changes.Action) { case ListChangeAction.Add: changes.NewItems.ForEach((Object el, int i) => list.Insert(si + i, (T)el)); break; case ListChangeAction.Remove: changes.OldItems.Cast <T>().ForEach(el => list.Remove(el)); break; case ListChangeAction.Replace: case ListChangeAction.Move: changes.NewItems.ForEach((Object el, int i) => list.Insert(si + i, (T)el)); changes.OldItems.Cast <T>().ForEach(el => list.Remove(el)); break; case ListChangeAction.Reset: list.Clear(); break; default: throw new ArgumentOutOfRangeException(changes.Action.ToString()); } }
private void FireListChanged(ListChangeEventArgs args) { OnListChanged(args); if (ListChanged != null) { ListChanged(this, args); } }
private void OnListChanging(Object o, ListChangeEventArgs e) { foreach (T c in e.NewItems) { OnChildAdding(c); if (ChildAdding != null) { ChildAdding(c); } } foreach (T c in e.OldItems) { OnChildRemoving(c); if (ChildRemoving != null) { ChildRemoving(c); } } IsFrozen.AssertFalse(); }
public void OnBeforeMediaListChange(object sender, ListChangeEventArgs e) { }
private void MediaList_AfterListChanged(object sender, ListChangeEventArgs e) { //mediaListHistoryCurrentIndex += e.SwitchDirection == DragableListSwitchDirection.Back ? -1 : 0; }
private void BanChangesToLocalsWhenFrozen(Object sender, ListChangeEventArgs args) { throw AssertionHelper.Fail(); }
private void ChangeTracking_ChildrenChanged(Object o, ListChangeEventArgs args) { FireListChanged(args); FirePropertyChanged("Children", args); }
protected virtual void OnListChanged(ListChangeEventArgs args) { }