private void MenuItem_Click_3(object sender, RoutedEventArgs e) { var m = (ContextMenu)Resources["ImageCtxMenu"]; var target = m.DataContext as FileWrapper; if (target == null) { return; } var fdlg = new RenameFileDialog(Properties.Resources.RenameFileDialogTitle) { DataContext = target, Owner = this, }; target.BeginEdit(); if (fdlg.ShowDialog() ?? false) { target.EndEdit(); } else { target.CancelEdit(); } }
private void addFolderBtn_Click(object sender, RoutedEventArgs e) { var fdlg = new RenameFileDialog(Properties.Resources.NewFolderDialogTitle); var f = new FolderWrapper(); fdlg.DataContext = f; fdlg.Owner = this; f.BeginEdit(); if (!fdlg.ShowDialog().GetValueOrDefault(false)) { return; } f.EndEdit(); FolderWrapper parent; var item = e.Source as MenuItem; if (item != null) { parent = item.DataContext as FolderWrapper; } else { var folder = TreeView.SelectedItem as FolderWrapper; parent = folder ?? (FolderWrapper)VModel.Folders[0]; } var v = parent?.Files.OfType <FolderWrapper>(); if (v != null) { var folderWrappers = v as FolderWrapper[] ?? v.ToArray(); if (folderWrappers.Any(o => o.Name == f.Name)) { var s = f.Name + " ({0})"; var i = 0; while (folderWrappers.Any(o => o.Name == string.Format(s, i))) { i++; } f.Name = string.Format(s, i); } } parent?.Files.Insert(0, f); }
private void RenameFolderMenuItem_Click(object sender, RoutedEventArgs e) { var menuItem = e.Source as MenuItem; var target = menuItem?.DataContext as FolderWrapper; if (target == null) { return; } var fdlg = new RenameFileDialog { DataContext = target, Owner = this, Title = Properties.Resources.RenameFolderDialogTitle }; target.BeginEdit(); if (fdlg.ShowDialog() ?? false) { var parent = (FolderWrapper)VModel.Folders[0]; var v = parent.Files.OfType <FolderWrapper>(); var folderWrappers = v as FolderWrapper[] ?? v.ToArray(); if (folderWrappers.Any(o => o != target && o.Name == target.Name)) { var s = target.Name + " ({0})"; var i = 0; while (folderWrappers.Any(o => o != target && o.Name == string.Format(s, i))) { i++; } target.Name = string.Format(s, i); } target.EndEdit(); } else { target.CancelEdit(); } }