コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }