private void OnNewResource(object sender, ExecutedRoutedEventArgs e) { var infoProvider = (IResourceInfoProvider)e.Parameter; var newFileName = Path.Combine(SelectedDirectory.DirectoryInfo.FullName, infoProvider.ResourceType.Name + infoProvider.Extensions[0]); int count = 1; while (System.IO.File.Exists(newFileName)) { newFileName = Path.Combine(SelectedDirectory.DirectoryInfo.FullName, infoProvider.ResourceType.Name + count++ + infoProvider.Extensions[0]); } infoProvider.SaveToDisk(new FileInfo(newFileName), null); OnRefreshResources(this, default(DependencyPropertyChangedEventArgs)); CurrentFiles.ForEach(f => f.IsSelected = false); var newFile = CurrentFiles.First(f => f.Info.FullName == newFileName); newFile.IsSelected = true; newFile.IsEditing = true; }
private void OnNewResource(object sender, ExecutedRoutedEventArgs e) { var infoProvider = (IResourceInfoProvider)e.Parameter; var newFileName = Path.Combine(SelectedDirectory.DirectoryInfo.FullName, infoProvider.ResourceType.Name + infoProvider.Extensions[0]); int count = 1; while (System.IO.File.Exists(newFileName)) { newFileName = Path.Combine(SelectedDirectory.DirectoryInfo.FullName, infoProvider.ResourceType.Name + count++ + infoProvider.Extensions[0]); } CurrentFiles.ForEach(f => f.IsSelected = false); var newFile = FileFor(new FileInfo(newFileName)); infoProvider.Save(Activator.CreateInstance(infoProvider.ResourceType), newFile.Info); newFile.IsSelected = true; newFile.IsEditing = true; CurrentFiles.Add(newFile); }