/// <summary> /// Create a new folder underneath the given parent folder. This method creates /// the folder with a standard name (eg 'New folder n') on disk and selects it /// in editing mode to give users a chance for renaming it right away. /// </summary> /// <param name="parentFolder"></param> private void CreateFolderCommandNewFolder(TreeItemViewModel parentFolder) { if (parentFolder == null) { return; } // Cast this to access internal methods and setters var item = parentFolder.CreateNewDirectory(); var newSubFolder = item as FolderViewModel; SelectedItem = newSubFolder; if (newSubFolder != null) { // Do this with low priority (thanks for that tip to Joseph Leung) Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, (Action) delegate { newSubFolder.IsSelected = true; newSubFolder.RequestEditMode(InplaceEditBoxLib.Events.RequestEditEvent.StartEditMode); }); } }