private async Task <FolderItem> CreateFolderWithSelectedAsParentAsync(string name) { try { var folderItem = await FolderItem.GetNew(name); if (GetSelectedFolder() != null) { try { await folderItem.SetParentAsync(GetSelectedFolder()); } catch (Exception exception) { var messageDialog = new MessageDialog("Error setting folder parent: " + exception.Message); messageDialog.Commands.Add(new UICommand("Close")); messageDialog.DefaultCommandIndex = 0; messageDialog.CancelCommandIndex = 0; await messageDialog.ShowAsync(); await folderItem.DeleteAsync(); return(null); } } var newNode = new WinUI.TreeViewNode() { Content = folderItem }; if (GetSelectedNode() != null) { GetSelectedNode().Children.Add(newNode); treeView.Expand(GetSelectedNode()); } else { treeView.RootNodes.Add(newNode); } SelectNode(newNode); await Task.Delay(100); var container = treeView.ContainerFromNode(newNode); if (container != null) { var tvi = container as WinUI.TreeViewItem; (tvi?.Content as EditableTextBlock)?.EnableEditMode(); } return(folderItem); } catch (Exception exception) { var messageDialog = new MessageDialog("Error: " + exception.Message); messageDialog.Commands.Add(new UICommand("Close")); messageDialog.DefaultCommandIndex = 0; messageDialog.CancelCommandIndex = 0; await messageDialog.ShowAsync(); return(null); } }