private async Task promptForFile() { var dialog = new Avalonia.Controls.SaveFileDialog(); //dialog.Filters.Add(new FileDialogFilter(){Name = "All", Extensions = {"*"}}); var initialDirectory = getInitialDirectory(); if (initialDirectory.IsSet) { dialog.Directory = initialDirectory.Value; } if (!string.IsNullOrWhiteSpace(FilePath)) { dialog.InitialFileName = System.IO.Path.GetFileName(FilePath); } var win = (Window)this.GetVisualRoot(); string result = await dialog.ShowAsync(win); if (!string.IsNullOrWhiteSpace(result)) { FilePath = result; } }
/// <inheritdoc/> public override async void Run() { var editor = ServiceProvider.GetService<ProjectEditor>(); var dlg = new SaveFileDialog(); dlg.Filters.Add(new FileDialogFilter() { Name = "Project", Extensions = { "project" } }); dlg.Filters.Add(new FileDialogFilter() { Name = "All", Extensions = { "*" } }); dlg.InitialFileName = editor.Project?.Name; dlg.DefaultExtension = "project"; var result = await dlg.ShowAsync(ServiceProvider.GetService<MainWindow>()); if (result != null) { editor.OnSave(result); } }