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);
            }
        }
        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 TagTreeViewItemModelManager Convert(TagManager source)
        {
            TagTreeViewItemModelManager result = new TagTreeViewItemModelManager();

            var baseTag = source.GetBaseTag();

            var addBaseTag = ConvertTagToTagTreeViewItemModel.ConvertBaseTag(baseTag);

            result.Add(addBaseTag);
            ExpandChild(addBaseTag, baseTag, ref result);

            return(result);
        }
        public static TagTreeViewItemModelManager Convert(TagManager source)
        {
            TagTreeViewItemModelManager result = new TagTreeViewItemModelManager();

            var baseTag = source.GetBaseTag();

            var addBaseTag = ConvertTagToTagTreeViewItemModel.ConvertBaseTag(baseTag);

            result.Add(addBaseTag);
            ExpandChild(addBaseTag, baseTag, ref result);

            return result;
        }