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 OpenFileDialogViewVM : FSEDialogViewVM { [TangoInject] protected IStorageProvider StorageProvider { get; set; } private String _selectedFile; public String SelectedFile { get { return _selectedFile; } set { _selectedFile = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } public String Extension { get; set; } public String Message { get; set; } public RelayCommand BrowseCommand { get; set; } public OpenFileDialogViewVM(String message, String extension) { TangoIOC.Default.Inject(this); AutoMode = true; Message = message; Extension = extension; BrowseCommand = new RelayCommand(BrowseForFile); } private async void BrowseForFile() { var result = await StorageProvider.OpenFile("Browse for file", $"Files|{Extension}"); if (result.Confirmed) { SelectedFile = result.SelectedItem; } } protected override bool CanOK() { return base.CanOK() && SelectedFile != null; } protected override void Cancel() { SelectedFile = null; base.Cancel(); } } }