示例#1
0
 protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs args)
 {
     base.OnCollectionChanged(args);
     if (this.owner != null)
     {
         RadTreeViewElement treeViewElement = this.owner.TreeViewElement;
         if (treeViewElement != null)
         {
             if (args.Action == NotifyCollectionChangedAction.Add)
             {
                 RadTreeNode node = (RadTreeNode)args.NewItems[0];
                 treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemAdded, node);
                 treeViewElement.OnNodeAdded(new RadTreeViewEventArgs(node));
             }
             else if (args.Action == NotifyCollectionChangedAction.Remove)
             {
                 RadTreeNode node = (RadTreeNode)args.NewItems[0];
                 treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemRemoved, node);
                 treeViewElement.OnNodeRemoved(new RadTreeViewEventArgs(node));
             }
             else if (args.Action == NotifyCollectionChangedAction.Move)
             {
                 RadTreeNode node = (RadTreeNode)args.NewItems[0];
                 treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemMoved, node);
             }
             else if (args.Action == NotifyCollectionChangedAction.Reset)
             {
                 treeViewElement.Update(RadTreeViewElement.UpdateActions.Reset);
             }
         }
     }
 }
 protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs args)
 {
   base.OnCollectionChanged(args);
   if (this.Suspended || this.owner == null)
     return;
   RadTreeViewElement treeViewElement = this.owner.TreeViewElement;
   if (treeViewElement == null)
     return;
   if (!treeViewElement.IsSuspended)
   {
     this.owner.InvalidateOnState();
     this.owner.UpdateParentCheckState();
   }
   if (args.Action == NotifyCollectionChangedAction.Add)
   {
     RadTreeNode newItem = (RadTreeNode) args.NewItems[0];
     treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemAdded, newItem);
     treeViewElement.OnNodeAdded(new RadTreeViewEventArgs(newItem));
   }
   else if (args.Action == NotifyCollectionChangedAction.Remove)
   {
     RadTreeNode newItem = (RadTreeNode) args.NewItems[0];
     treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemRemoved, newItem);
     treeViewElement.OnNodeRemoved(new RadTreeViewEventArgs(newItem));
   }
   else if (args.Action == NotifyCollectionChangedAction.Move)
   {
     RadTreeNode newItem = (RadTreeNode) args.NewItems[0];
     treeViewElement.Update(RadTreeViewElement.UpdateActions.ItemMoved, newItem);
   }
   else
   {
     if (args.Action != NotifyCollectionChangedAction.Reset)
       return;
     RadTreeViewElement.UpdateActions updateAction = this.owner is RadTreeViewElement.RootTreeNode ? RadTreeViewElement.UpdateActions.Reset : RadTreeViewElement.UpdateActions.Resume;
     treeViewElement.Update(updateAction);
   }
 }