Inheritance: INotifyPropertyChanged
コード例 #1
0
 public void ConnectChildrenToParent(Tag tag)
 {
     foreach (var child in tag.Children)
     {
         ConnectTags(tag, child);
     }
 }
コード例 #2
0
        public void Remove(Tag tag, RemoveType type)
        {
            if (tag.Parent == null)
            {
                return;
            }

            if (type == RemoveType.ConnectRelatedChildrenToParent)
            {
                ConnectChildrenToParent(tag);
            }
            else
            {
                RemoveChildren(tag);
            }

            RemoveFromDictonary(tag);
            OnTagRemoved(tag);
            DisconnectFromParent(tag);
        }
コード例 #3
0
 public void OnTagRemoved(Tag tag)
 {
     if (TagRemoved != null)
     {
         TagRemoved(this, tag);
     }
 }
コード例 #4
0
 public void DisconnectFromParent(Tag tag)
 {
     tag.Parent.Children.Remove(tag);
     tag.Parent = null;
 }
コード例 #5
0
 public void ConnectTags(Tag parent, Tag child)
 {
     parent.Children.Add(child);
     child.Parent = parent;
 }
コード例 #6
0
 public void Add(Tag tag)
 {
     _tagDictionary.Add(tag.Id, tag);
 }
コード例 #7
0
 private void RemoveFromDictonary(Tag tag)
 {
     _tagDictionary.Remove(tag.Id);
 }
コード例 #8
0
        public void RemoveChildren(Tag tag)
        {
            foreach(var child in tag.Children)
            {
                RemoveFromDictonary(tag);
                RemoveChildren(child);
                OnTagRemoved(tag);
            }

            tag.Children.Clear();
        }