using System.Windows.Forms; using System.Windows.Input; using HeBianGu.Service.Mvc; using Microsoft.WindowsAPICodePack.Dialogs; namespace HeBianGu.App.Disk.ViewModel.Sync; [ViewModel("Sync")] public class SyncViewModel : MvcViewModelBase { public ICommand OpenDirCommand { get; set; } protected override void Init() { /*LinkActions.Add(new LinkAction() { Action = "Space", Controller = "Loyout", DisplayName = "会话", Logo = "\xe613" }); Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() => { SelectLink = LinkActions[0]; }));*/ } public SyncViewModel() { OpenDirCommand = new RelayCommand(async () => await ButtonBase_OnClick()); } protected override void Loaded(string args) { } public string _syncDir; public string SyncDir { get => _syncDir; set { _syncDir = value; RaisePropertyChanged(); } } public class RelayCommand : ICommand { private readonly Action _execute; public RelayCommand(Action execute) { _execute = execute; } public bool CanExecute(object parameter) { return true; } public event EventHandler CanExecuteChanged; public void Execute(object parameter) { _execute(); } } private async Task ButtonBase_OnClick() { CommonOpenFileDialog dialog = new CommonOpenFileDialog { IsFolderPicker = true }; if (dialog.ShowDialog() == CommonFileDialogResult.Ok) { var folderPath = dialog.FileName; // 获取选中的文件夹路径 //MessageBox.Show("folderPath " + folderPath); SyncDir = folderPath; // 处理选中的文件夹路径 } } }