using System; using System.Collections.ObjectModel; using System.Linq; using Windows.Storage.AccessCache; using Windows.UI.Xaml; using ModernKeePass.Common; namespace ModernKeePass.ViewModels { public class RecentVm : NotifyPropertyChangedBase { private RecentItemVm _selectedItem; private ObservableCollection _recentItems; public ObservableCollection RecentItems { get { return _recentItems; } set { SetProperty(ref _recentItems, value); } } public RecentItemVm SelectedItem { get { return _selectedItem; } set { if (_selectedItem == value) return; if (_selectedItem != null) { _selectedItem.IsSelected = false; } SetProperty(ref _selectedItem, value); if (_selectedItem != null) { _selectedItem.IsSelected = true; } var mru = StorageApplicationPermissions.MostRecentlyUsedList; var database = ((App)Application.Current).Database; try { database.DatabaseFile = mru.GetFileAsync(SelectedItem.Token).GetAwaiter().GetResult(); } catch (Exception e) { } } } public RecentVm() { var mru = StorageApplicationPermissions.MostRecentlyUsedList; RecentItems = new ObservableCollection( from entry in mru.Entries select new RecentItemVm { Name = entry.Metadata, Token = entry.Token }); if (RecentItems.Count > 0) SelectedItem = RecentItems[0]; } } }