private static ModifiedTreeViewItem NavigateTo(ModifiedTreeViewItem view, string path, bool autocreate)
 {
     path = path.Replace("\\", "/");
     var list = path.Split('/').ToList();
     var message = list[0];
     foreach (ModifiedTreeViewItem view1 in view.Items)
     {
         if (view1.SemanticValue != message) continue;
         if (list.Count == 1)
             return view1;
         list.RemoveAt(0);
         return NavigateTo(view1, StringExtension.PutTogether(list, '/'), autocreate);
     }
     if (!autocreate)
         return null;
     var view2 = new ModifiedTreeViewItem
     {
         Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", message),
         SemanticValue = message
     };
     view.Items.Add(view2);
     if (list.Count == 1)
         return view2;
     list.RemoveAt(0);
     return NavigateTo(view2, StringExtension.PutTogether(list, '/'), autocreate);
 }
        private static ModifiedTreeViewItem NavigateTo(ModifiedTreeViewItem view, string path, bool autocreate)
        {
            path = path.Replace("\\", "/");
            List <string> list    = Enumerable.ToList(path.Split('/'));
            string        message = list[0];

            foreach (ModifiedTreeViewItem view1 in view.Items)
            {
                if (view1.SemanticValue == message)
                {
                    if (list.Count == 1)
                    {
                        return(view1);
                    }
                    list.RemoveAt(0);
                    return(NavigateTo(view1, StringExtension.PutTogether(list, '/'), autocreate));
                }
            }
            if (!autocreate)
            {
                return(null);
            }
            ModifiedTreeViewItem view2 = new ModifiedTreeViewItem();

            view2.Header        = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", message);
            view2.SemanticValue = message;
            view.Items.Add(view2);
            if (list.Count == 1)
            {
                return(view2);
            }
            list.RemoveAt(0);
            return(NavigateTo(view2, StringExtension.PutTogether(list, '/'), autocreate));
        }
 public static ModifiedTreeViewItem NavigateTo(this TreeView view, string path, bool autocreate)
 {
     path = path.Replace("\\", "/");
     List<string> list = Enumerable.ToList(path.Split('/'));
     string message = list[0];
     foreach (ModifiedTreeViewItem view1 in view.Items)
     {
         if (view1.SemanticValue == message)
         {
             if (list.Count == 1)
                 return view1;
             list.RemoveAt(0);
             return NavigateTo(view1, StringExtension.PutTogether(list, '/'), autocreate);
         }
     }
     if (!autocreate)
         return null;
     ModifiedTreeViewItem view2 = new ModifiedTreeViewItem();
     view2.Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", message);
     view2.SemanticValue = message;
     view.Items.Add((object)view2);
     if (list.Count == 1)
         return view2;
     list.RemoveAt(0);
     return NavigateTo(view2, StringExtension.PutTogether(list, '/'), autocreate);
 }
        public static string GetNavigator(this ModifiedTreeViewItem item)
        {
            string str = item.SemanticValue;

            if (item.Parent != null && item.Parent is ModifiedTreeViewItem)
            {
                str = GetNavigator(item.Parent as ModifiedTreeViewItem) + "/" + str;
            }
            return(str.Trim('/'));
        }