From 9ccb4284067d9dcc99576ab8ddae3aa111733f29 Mon Sep 17 00:00:00 2001 From: Yimeng Wu Date: Wed, 24 Mar 2021 01:10:33 +0800 Subject: [PATCH] Fix #292: Tree view items are not indented when created from code-behind --- .../Controls/Primitives/TreeViewItemHelper.cs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/ModernWpf/Controls/Primitives/TreeViewItemHelper.cs b/ModernWpf/Controls/Primitives/TreeViewItemHelper.cs index 0d663080..f5e4a84e 100644 --- a/ModernWpf/Controls/Primitives/TreeViewItemHelper.cs +++ b/ModernWpf/Controls/Primitives/TreeViewItemHelper.cs @@ -32,27 +32,25 @@ private static void OnIsEnabledChanged(DependencyObject d, DependencyPropertyCha var treeViewItem = (TreeViewItem)d; if ((bool)e.NewValue) { - if (treeViewItem.IsInitialized) + treeViewItem.IsVisibleChanged += OnTreeViewItemIsVisibleChanged; + if (treeViewItem.IsVisible) { UpdateIndentation(treeViewItem); } - else - { - treeViewItem.Initialized += OnTreeViewItemInitialized; - } } else { - treeViewItem.Initialized -= OnTreeViewItemInitialized; + treeViewItem.IsVisibleChanged -= OnTreeViewItemIsVisibleChanged; treeViewItem.ClearValue(IndentationPropertyKey); } } - private static void OnTreeViewItemInitialized(object sender, System.EventArgs e) + private static void OnTreeViewItemIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { - var treeViewItem = (TreeViewItem)sender; - treeViewItem.Initialized -= OnTreeViewItemInitialized; - UpdateIndentation(treeViewItem); + if ((bool)e.NewValue) + { + UpdateIndentation((TreeViewItem)sender); + } } #endregion