コード例 #1
0
        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));
        }
コード例 #2
0
        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();
        }