using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; using Tango.Core.DI; using Tango.FSE.Common; using Tango.FSE.Common.Storage; namespace Tango.FSE.Procedures.Dialogs { public class SelectFolderDialogViewVM : FSEDialogViewVM { [TangoInject] protected IStorageProvider StorageProvider { get; set; } private String _selectedFolder; public String SelectedFolder { get { return _selectedFolder; } set { _selectedFolder = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } public String Message { get; set; } public RelayCommand BrowseCommand { get; set; } public SelectFolderDialogViewVM(String message) { TangoIOC.Default.Inject(this); AutoMode = true; Message = message; BrowseCommand = new RelayCommand(BrowseForFolder); } private async void BrowseForFolder() { var result = await StorageProvider.SelectFolder("Select folder"); if (result.Confirmed) { SelectedFolder = result.SelectedItem; } } protected override bool CanOK() { return base.CanOK() && SelectedFolder != null; } protected override void Cancel() { SelectedFolder = null; base.Cancel(); } } }