private void LoadRenderings([NotNull] string response, [NotNull] ExecuteResult executeResult) { if (!DataService.HandleExecute(response, executeResult)) { return; } var root = response.ToXElement(); if (root == null) { return; } var renderings = root.Elements().Select(element => ItemHeader.Parse(DatabaseUri, element)).ToList(); Renderings = renderings.Select(t => new CheckedItemHeader(t, SelectedItems.Contains(t.ItemUri.ItemId))).ToList(); RenderingListView.ItemsSource = Renderings; _listViewSorter.Resort(); _view = CollectionViewSource.GetDefaultView(Renderings) as CollectionView; if (_view == null) { return; } var groupDescription = new PropertyGroupDescription("ParentPath") { StringComparison = StringComparison.InvariantCultureIgnoreCase }; var collection = _view.GroupDescriptions; if (collection != null) { collection.Clear(); collection.Add(groupDescription); } _view.Filter = delegate(object o) { var itemHeader = o as ItemHeader; return(itemHeader != null && itemHeader.Name.IsFilterMatch(RenderinSelectorFilter.Text)); }; _view.Refresh(); RenderingListView.ResizeColumn(NameColumn); Loading.Visibility = Visibility.Collapsed; RenderingListView.Visibility = Visibility.Visible; var loaded = RenderingsLoaded; if (loaded != null) { loaded(this, EventArgs.Empty); } }
public void FocusItem([NotNull] ItemId itemId) { Assert.ArgumentNotNull(itemId, nameof(itemId)); var renderings = RenderingListView.Items.OfType <CheckedItemHeader>(); var result = renderings.FirstOrDefault(header => header.ItemId == itemId); RenderingListView.SelectedItem = result; if (result != null) { RenderingListView.ScrollIntoView(result); } }