34 lines
1022 B
C#
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();
|
|
}
|
|
} |