From 7251e9e55bdf7e67c1f482d29843a40577f49eda Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sun, 14 Sep 2014 13:29:40 +0200 Subject: [PATCH] Added TreeViewItem.IsExpanded. --- Perspex/Controls/StackPanel.cs | 2 +- Perspex/Controls/TreeViewItem.cs | 13 ++++++++----- Perspex/Themes/Default/TreeViewItemStyle.cs | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Perspex/Controls/StackPanel.cs b/Perspex/Controls/StackPanel.cs index e2114450f9..4ce3d9a9ac 100644 --- a/Perspex/Controls/StackPanel.cs +++ b/Perspex/Controls/StackPanel.cs @@ -107,7 +107,7 @@ namespace Perspex.Controls arrangedWidth = 0; } - foreach (Control child in this.Children) + foreach (Control child in this.Children.Where(x => x.DesiredSize.HasValue)) { double childWidth = child.DesiredSize.Value.Width; double childHeight = child.DesiredSize.Value.Height; diff --git a/Perspex/Controls/TreeViewItem.cs b/Perspex/Controls/TreeViewItem.cs index 6c1a841c17..1ad0a27dd2 100644 --- a/Perspex/Controls/TreeViewItem.cs +++ b/Perspex/Controls/TreeViewItem.cs @@ -6,12 +6,15 @@ namespace Perspex.Controls { - using System; - using System.Collections; - using System.Linq; - using System.Reactive.Linq; - public class TreeViewItem : HeaderedItemsControl { + public static readonly PerspexProperty IsExpandedProperty = + PerspexProperty.Register("IsExpanded"); + + public bool IsExpanded + { + get { return this.GetValue(IsExpandedProperty); } + set { this.SetValue(IsExpandedProperty, value); } + } } } diff --git a/Perspex/Themes/Default/TreeViewItemStyle.cs b/Perspex/Themes/Default/TreeViewItemStyle.cs index 030f0a81b8..2395af85a3 100644 --- a/Perspex/Themes/Default/TreeViewItemStyle.cs +++ b/Perspex/Themes/Default/TreeViewItemStyle.cs @@ -61,6 +61,7 @@ namespace Perspex.Themes.Default Margin = new Thickness(24, 0, 0, 0), [~ItemsPresenter.ItemsProperty] = control[~TreeViewItem.ItemsProperty], [~ItemsPresenter.ItemsPanelProperty] = control[~TreeViewItem.ItemsPanelProperty], + [~ItemsPresenter.IsVisibleProperty] = control[~TreeViewItem.IsExpandedProperty], } } };