PhotoRenamer/PhotoRenamerGui/MainWindowViewModel.cs

34 lines
1022 B
C#

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<string?> SearchFolder()
{
var storageProvider = (App.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime).MainWindow
.StorageProvider;
var result =await storageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions());
return result.FirstOrDefault()?.TryGetLocalPath();
}
}