protected override void Unsubscribe() { if (treeView != null) { TreeViewExtensions.GetColumns(treeView)?.ForEach(i => i.VisibilityChanged -= OnColumnVisibilityChanged); } }
protected override void Show(TreeViewColumn column) { var index = TreeViewExtensions.GetColumns(treeView).IndexOf(column); var content = Children.OfType <ContentPresenter>().First(i => GetColumn(i) == index); Show(column, content, index); }
//... protected override void Subscribe() { if (treeView != null) { if (TreeViewExtensions.GetMode(treeView) == TreeViewModes.Grid) { TreeViewExtensions.GetColumns(treeView)?.ForEach(i => i.VisibilityChanged += OnColumnVisibilityChanged); } } }
protected override ColumnDefinition OnDefinitionCreated(ContentPresenter child, int index) { var result = base.OnDefinitionCreated(child, index); switch (TreeViewExtensions.GetMode(treeView)) { case TreeViewModes.Default: result.Width = new(1, GridUnitType.Star); break; case TreeViewModes.Grid: Bind(TreeViewExtensions.GetColumns(treeView)[index], result); break; } return(result); }
protected override void OnItemsSourceChanged(OldNew <IEnumerable> input) { base.OnItemsSourceChanged(input); if (TreeViewExtensions.GetMode(treeView) == TreeViewModes.Grid) { var columns = TreeViewExtensions.GetColumns(treeView); if (columns?.Count > 0) { columns.ForEach(i => { if (!DependencyObjectExtensions.GetIsVisible(i)) { Hide(i); } }); } } }
void Load() { if (treeView is not null && treeViewItem is not null) { treeViewItem.Visibility = Visibility.Collapsed; ObjectCollection result = new(); switch (TreeViewExtensions.GetMode(treeView)) { case TreeViewModes.Default: result.Add(new ContentPresenter() { Content = treeViewItem.Header, ContentStringFormat = treeViewItem.HeaderStringFormat, ContentTemplate = treeViewItem.HeaderTemplate, ContentTemplateSelector = treeViewItem.HeaderTemplateSelector, }); break; case TreeViewModes.Grid: var columns = TreeViewExtensions.GetColumns(treeView); if (columns?.Count > 0) { columns.For(0, columns.Count, (a, b) => result.Add(GetCell(a[b], treeViewItem))); break; } goto case TreeViewModes.Default; } ItemsSource = result; treeViewItem.Visibility = Visibility.Visible; } }