From b5a2bab69166d83c34d946fa1f8b3439c7291a3a Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Thu, 27 Jun 2024 22:51:51 +0100 Subject: [PATCH] WIP FileSelector --- Toolkit.Avalonia/FileSelector.cs | 30 +++++++++++++++++++++++++++++ Toolkit.Foundation/FileFilter.cs | 3 +++ Toolkit.Foundation/IFileSelector.cs | 6 ++++++ 3 files changed, 39 insertions(+) create mode 100644 Toolkit.Avalonia/FileSelector.cs create mode 100644 Toolkit.Foundation/FileFilter.cs create mode 100644 Toolkit.Foundation/IFileSelector.cs diff --git a/Toolkit.Avalonia/FileSelector.cs b/Toolkit.Avalonia/FileSelector.cs new file mode 100644 index 0000000..682d849 --- /dev/null +++ b/Toolkit.Avalonia/FileSelector.cs @@ -0,0 +1,30 @@ +using Avalonia.Controls; +using Toolkit.Foundation; + +namespace Toolkit.Avalonia; + +public class FileSelector : + IFileSelector +{ + public async Task> SelectFiles(FileFilter filter) + { + //TopLevel topLevel = TopLevel.GetTopLevel(control); + + //var openFileDialog = new OpenFileDialog(); + //openFileDialog.Filters.Add(new FileDialogFilter + //{ + // Name = filter.Name, + // Extensions = filter.Extensions + //}); + + //openFileDialog.AllowMultiple = filter.AllowMultiple; + + //var results = await openFileDialog.ShowAsync(window as Window); + + //if (results != null && results.Length > 0) + //{ + // return results.Select(result => result); + //} + return Enumerable.Empty(); + } +} diff --git a/Toolkit.Foundation/FileFilter.cs b/Toolkit.Foundation/FileFilter.cs new file mode 100644 index 0000000..e37c437 --- /dev/null +++ b/Toolkit.Foundation/FileFilter.cs @@ -0,0 +1,3 @@ +namespace Toolkit.Foundation; + +public record FileFilter(string Name, List Extensions, bool AllowMultiple = false); diff --git a/Toolkit.Foundation/IFileSelector.cs b/Toolkit.Foundation/IFileSelector.cs new file mode 100644 index 0000000..5eb8bb8 --- /dev/null +++ b/Toolkit.Foundation/IFileSelector.cs @@ -0,0 +1,6 @@ +namespace Toolkit.Foundation; + +public interface IFileSelector +{ + Task> SelectFiles(FileFilter filter); +}