예제 #1
0
        private void CloseOpenedSection(object sender, ViewModelEventArgs e)
        {
            ViewModelSection callingObj = sender as ViewModelSection;

            //return if list of section is empty
            if (_openedViews.Count == 0)
            {
                return;
            }

            do
            {
                var lastNode = _openedViews.Last;
                _openedViews.RemoveLast();
                lastNode.Value.CreateView  -= AddSectionToPipe;
                lastNode.Value.WantToClose -= CloseOpenedSection;

                //Delete filter if exists
                if (lastNode.Value.Filter != null)
                {
                    _openedViews.Remove(lastNode.Value.Filter);
                }

                if (lastNode.Value == callingObj)
                {
                    break;
                }
            } while (_openedViews.Count > 0);
            if (_openedViews.Count == 0)
            {
                SelectedMenuItem.IsSelected = false;
            }
        }
예제 #2
0
        private void Remove(Entity entity)
        {
            if (!entityMap.ContainsKey(entity))
            {
                return;
            }

            var node = entityMap[entity];

            entityMap.Remove(entity);

            entities.Remove(node);
        }
        void Users_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            switch (e.Action)
            {
            case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
                foreach (var item in e.NewItems)
                {
                    _users.AddLast(item as MaterialContainableBase);
                }
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
                foreach (var item in e.OldItems)
                {
                    _users.Remove(item as MaterialContainableBase);
                }
                break;
                // Replace is not needed, since it remains an item anyway.
            }
        }