Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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);
     }
 }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
 public void OnBeforeMediaListChange(object sender, ListChangeEventArgs e)
 {
 }
Esempio n. 6
0
 private void MediaList_AfterListChanged(object sender, ListChangeEventArgs e)
 {
     //mediaListHistoryCurrentIndex += e.SwitchDirection == DragableListSwitchDirection.Back ? -1 : 0;
 }
Esempio n. 7
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)
 {
 }