public Task <SaveFileDialogResult> ShowDialogAsync() { var dialog = new SaveFileDialog() { DataTemplates = { ViewResolver.Default } }; var viewModel = new SaveFileDialogViewModel( new DialogView <SaveFileDialogResult>(dialog), ClipboardService.Instance, DefaultFileIconProvider.Instance, new MessageDialogService(dialog)); dialog.DataContext = viewModel; return(dialog.ShowDialog <SaveFileDialogResult>(_owner)); }
public async Task <string[]> ShowFileDialogAsync(FileDialog dialog, Window parent) { if (dialog is OpenFileDialog openFileDialog) { var view = new MovereOpenFileDialog() { DataTemplates = { ViewResolver.Default } }; var viewModel = new OpenFileDialogViewModel( new DialogView <OpenFileDialogResult>(view), ClipboardService.Instance, DefaultFileIconProvider.Instance, new MessageDialogService(view), openFileDialog.AllowMultiple, dialog.Filters.Select(ConvertFilter).ToImmutableArray()); if (!String.IsNullOrWhiteSpace(dialog.Directory)) { var directory = new DirectoryInfo(dialog.Directory); if (directory.Exists) { viewModel.FileExplorer.CurrentFolder = new Folder(directory); } } if (!(dialog.InitialFileName is null)) { viewModel.FileName = dialog.InitialFileName; } view.DataContext = viewModel; var result = await view.ShowDialog <OpenFileDialogResult>(parent); return(result == null?Array.Empty <string>() : result.SelectedPaths.ToArray()); } if (dialog is SaveFileDialog saveFileDialog) { var view = new MovereSaveFileDialog() { DataTemplates = { ViewResolver.Default } }; var viewModel = new SaveFileDialogViewModel( new DialogView <SaveFileDialogResult>(view), ClipboardService.Instance, DefaultFileIconProvider.Instance, new MessageDialogService(view)); if (!String.IsNullOrWhiteSpace(dialog.Directory)) { var directory = new DirectoryInfo(dialog.Directory); if (directory.Exists) { viewModel.FileExplorer.CurrentFolder = new Folder(directory); } } if (!(dialog.InitialFileName is null)) { viewModel.FileName = dialog.InitialFileName; } view.DataContext = viewModel; var result = await view.ShowDialog <SaveFileDialogResult>(parent); return((result == null || result.SelectedPath == null) ? Array.Empty <string>() : new string[] { result.SelectedPath }); } throw new NotImplementedException(); }