public void AddChild(TagTreeViewItemModel addTarget)
        {
            var newTag = _manager.GenerateNewTag() as TagTreeViewItemModel;

            _manager.ConnectTags(addTarget, newTag);
            _manager.Add(newTag);

            newTag.IsSelected    = true;
            addTarget.IsSelected = false;
            addTarget.IsExpanded = true;

            OnPropertyChanged("Tags");
        }
        public static void ExpandChild(TagTreeViewItemModel parentTag, TagModel baseTag, ref TagTreeViewItemModelManager manager)
        {
            foreach (var child in baseTag.Children)
            {
                var childTag = ConvertTagToTagTreeViewItemModel.ConvertTag(child);

                manager.Add(childTag);
                manager.ConnectTags(parentTag, childTag);

                ExpandChild(childTag, child, ref manager);
            }
        }
        public static void ExpandChild(TagTreeViewItemModel parentTag, TagModel baseTag, ref TagTreeViewItemModelManager manager)
        {
            foreach (var child in baseTag.Children)
            {
                var childTag = ConvertTagToTagTreeViewItemModel.ConvertTag(child);

                manager.Add(childTag);
                manager.ConnectTags(parentTag, childTag);

                ExpandChild(childTag, child, ref manager);
            }
        }