public StagingSessionViewModel(IRepository repository, IWindowService windowService, ShortcutService shortcutService, IStatusService statusService) : base(repository, windowService, shortcutService, statusService) { StagedItems = new ObservableCollection <StagedItem>(); SelectedItems = new BatchObservableCollection <MediaItem>(); SelectedItems.CollectionChanged += async(s, a) => await SelectedItemsOnCollectionChanged(s, a); EditMediaInfoViewModel = new EditMediaInfoViewModel(Repository, ShortcutService, StatusService, false); }
public QuerySessionViewModel(IWindowService windowService, IRepository repository, ShortcutService shortcutService, IStatusService statusService, bool readOnly) : base(repository, windowService, shortcutService, statusService) { ReadOnly = readOnly; InitializeViewModesList(); FilterCollection = new FilterCollectionViewModel(Repository.Tags); FilterCollection.FilterChanged += async(sender, args) => await UpdateMatchCount(); UpdateMatchCount().Wait(); DetailItem = new MediaItemViewModel(Repository); QueryResultViewModel = new QueryResultViewModel(Repository, ShortcutService, StatusService); QueryResultViewModel.SelectionChanged += async(s, a) => { await QueryResultViewModelOnSelectionChanged(s, a); }; EditMediaInfoViewModel = new EditMediaInfoViewModel(Repository, ShortcutService, StatusService, true, ReadOnly); ToolWindowState = QueryToolWindowState.Filters; SelectedViewMode = ViewMode.Detail; }
private async Task SelectedItemsOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs notifyCollectionChangedEventArgs) { EditMediaInfoViewModel.LoadItems(SelectedItems.ToList()); }
public override async Task Close() { QueryResultViewModel.Close(); await EditMediaInfoViewModel.Close(); }