diff --git a/Toolkit.Avalonia/IServiceCollectionExtensions.cs b/Toolkit.Avalonia/IServiceCollectionExtensions.cs index d02fe22..df36924 100644 --- a/Toolkit.Avalonia/IServiceCollectionExtensions.cs +++ b/Toolkit.Avalonia/IServiceCollectionExtensions.cs @@ -141,6 +141,7 @@ public static class IServiceCollectionExtensions services.AddHandler(); services.AddHandler(); + services.AddHandler(); services.AddHandler(nameof(IClassicDesktopStyleApplicationLifetime)); services.AddHandler(nameof(ISingleViewApplicationLifetime)); @@ -174,6 +175,7 @@ public static class IServiceCollectionExtensions services.AddHandler(); services.AddHandler(); + services.AddHandler(); services.AddHandler(nameof(ContentControl)); services.AddHandler(nameof(Frame)); diff --git a/Toolkit.Foundation/SelectFilesHandler.cs b/Toolkit.Foundation/SelectFilesHandler.cs new file mode 100644 index 0000000..d45cca0 --- /dev/null +++ b/Toolkit.Foundation/SelectFilesHandler.cs @@ -0,0 +1,20 @@ +namespace Toolkit.Foundation; + +public class SelectFilesHandler(IFileProvider fileProvider) : + IHandler, IReadOnlyCollection?> +{ + public async Task?> Handle(SelectionEventArgs args, + CancellationToken cancellationToken) + { + if (args.Sender is FileFilter filter) + { + if (await fileProvider.SelectFiles(filter) + is { Count: > 0 } files) + { + return files; + } + } + + return default; + } +} diff --git a/Toolkit.Foundation/SelectFoldersHandler.cs b/Toolkit.Foundation/SelectFoldersHandler.cs index 33ee5ea..34d415f 100644 --- a/Toolkit.Foundation/SelectFoldersHandler.cs +++ b/Toolkit.Foundation/SelectFoldersHandler.cs @@ -1,5 +1,6 @@ namespace Toolkit.Foundation; + public class SelectFoldersHandler(IFolderProvider folderProvider) : IHandler, IReadOnlyCollection?> {