Esempio n. 1
0
        private void InstanceCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            var comparer = new InstanceEqualityComparer();

            if (e.Action.Equals(NotifyCollectionChangedAction.Add))
            {
                foreach (object item in e.NewItems)
                {
                    var instance = item as Instance;
                    base.Children.Add(new InstanceTreeViewItemViewModel(instance, this));
                }
            }
            else if (e.Action.Equals(NotifyCollectionChangedAction.Remove))
            {
                foreach (object item in e.OldItems)
                {
                    var toRemove = new List <TreeViewItemViewModel>();
                    var instance = item as Instance;
                    foreach (TreeViewItemViewModel treeView in base.Children)
                    {
                        var instanceTreeView = treeView as InstanceTreeViewItemViewModel;
                        if (instanceTreeView != null)
                        {
                            if (comparer.Equals(instanceTreeView.Instance, instance))
                            {
                                toRemove.Add(treeView);
                            }
                        }
                    }
                    foreach (TreeViewItemViewModel treeView in toRemove)
                    {
                        base.Children.Remove(treeView);
                    }
                }
            }
            else if (e.Action.Equals(NotifyCollectionChangedAction.Replace))
            {
                foreach (object item in e.NewItems)
                {
                    var instance = item as Instance;
                    foreach (TreeViewItemViewModel treeView in base.Children)
                    {
                        var instanceTreeView = treeView as InstanceTreeViewItemViewModel;
                        if (instanceTreeView != null)
                        {
                            if (comparer.Equals(instanceTreeView.Instance, instance))
                            {
                                instanceTreeView.Instance = instance;
                                if (!instanceTreeView.HasNotBeenPopulated)
                                {
                                    instanceTreeView.LoadChildren();
                                }
                            }
                        }
                    }
                }
            }
            else if (e.Action.Equals(NotifyCollectionChangedAction.Reset))
            {
                base.Children.Clear();
            }
        }
 private void InstanceCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     var comparer = new InstanceEqualityComparer();
     if (e.Action.Equals(NotifyCollectionChangedAction.Add))
     {
         foreach (var item in e.NewItems)
         {
             var instance = item as Instance;
             base.Children.Add(new InstanceTreeViewItemViewModel(instance, this));
         }
     }
     else if (e.Action.Equals(NotifyCollectionChangedAction.Remove))
     {
         foreach (var item in e.OldItems)
         {
             var toRemove = new List<TreeViewItemViewModel>();
             var instance = item as Instance;
             foreach (var treeView in base.Children)
             {
                 var instanceTreeView = treeView as InstanceTreeViewItemViewModel;
                 if (instanceTreeView != null)
                 {
                     if (comparer.Equals(instanceTreeView.Instance, instance))
                         toRemove.Add(treeView);
                 }
             }
             foreach (var treeView in toRemove)
                 base.Children.Remove(treeView);
         }
     }
     else if (e.Action.Equals(NotifyCollectionChangedAction.Replace))
     {
         foreach(var item in e.NewItems)
         {
             var instance = item as Instance;
             foreach (var treeView in base.Children)
             {
                 var instanceTreeView = treeView as InstanceTreeViewItemViewModel;
                 if (instanceTreeView != null)
                 {
                     if (comparer.Equals(instanceTreeView.Instance, instance))
                     {
                         instanceTreeView.Instance = instance;
                         if (!instanceTreeView.HasNotBeenPopulated)
                             instanceTreeView.LoadChildren();
                     }
                 }
             }
         }
     }
     else if (e.Action.Equals(NotifyCollectionChangedAction.Reset))
         base.Children.Clear();
 }
Esempio n. 3
0
        /// <summary>
        /// Initializes new instance of <see cref="AbstractionEventHandlerLookup{TAbstraction,TImplementation}"/>.
        /// </summary>
        public AbstractionEventHandlerLookup()
        {
            var comparer = new InstanceEqualityComparer <EventHandler <TAbstraction> >();

            _lookup = new Dictionary <EventHandler <TAbstraction>, AbstractionEventHandlerContext <TImplementation> >(comparer);
        }