using System.Linq; using System.Threading.Tasks; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Platform.Storage; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; namespace PhotoRenamerGui; public partial class MainWindowViewModel : ObservableObject { [ObservableProperty] private string? _inputFolder; [ObservableProperty] private string? _outputFolder; [RelayCommand] private async Task SelectInputFolder() { InputFolder = await SearchFolder(); } [RelayCommand] private async Task SelectOutputFolder() { OutputFolder = await SearchFolder(); } private async Task SearchFolder() { var storageProvider = (App.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime).MainWindow .StorageProvider; var result =await storageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions()); return result.FirstOrDefault()?.TryGetLocalPath(); } }