public override void Reload() { var selectedTagIds = TagButtons.Select(ibvm => ibvm.CurrentTag.Id); TagButtons.CollectionChanged -= OnTagButtonsChanged; var selectedOmniId = SelectedOmni?.Id ?? -1; Context.Dispose(); Context = OmniTagDatabaseContextFactory.GetNewContext(); AllOmnis = Context.Omnis.Where(o => o.DateDeleted == null).OrderBy(o => o.Summary).ToList(); var tags = new ObservableCollection <Tag>(Context.Tags.Where(t => t.DateDeleted == null).OrderBy(t => t.Name).ToList()); TagSearchDataContext.AllValues = tags; var selectedTagList = tags.Where(t => selectedTagIds.Contains(t.Id)) .ToList() .Select(t => new TagButtonViewModel(t)); TagButtons = new ObservableCollection <TagButtonViewModel>(selectedTagList); TagButtons.CollectionChanged += OnTagButtonsChanged; OnTagButtonsChanged(TagButtons, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); OmniSearchDataContext.SelectedValue = selectedOmniId == -1 ? null : OmniSearchDataContext.AllValues.SingleOrDefault(o => o.Id == selectedOmniId); }
protected BaseViewModel() { Context = OmniTagDatabaseContextFactory.GetNewContext(); }