diff options
Diffstat (limited to 'src/GraphicObjects/TreeView.cs')
| -rw-r--r-- | src/GraphicObjects/TreeView.cs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/GraphicObjects/TreeView.cs b/src/GraphicObjects/TreeView.cs index 4fa881b4..d4354b65 100644 --- a/src/GraphicObjects/TreeView.cs +++ b/src/GraphicObjects/TreeView.cs @@ -48,7 +48,6 @@ namespace Crow NotifyValueChanged ("IsRoot", isRoot); } } - [XmlIgnore]public override object SelectedItem { get { return selectedItemContainer == null ? @@ -84,6 +83,32 @@ namespace Crow NotifyValueChanged ("SelectedItem", SelectedItem); raiseSelectedItemChanged (); } + + void onExpandAll_MouseClick (object sender, MouseButtonEventArgs e) + { + ExpandAll (); + } + + public void ExpandAll(){ + foreach (Group grp in items.Children) { + foreach (GraphicObject go in grp.Children) { + Expandable exp = go as Expandable; + if (exp == null) + continue; + TreeView subTV = exp.FindByName ("List") as TreeView; + if (subTV == null) + continue; + EventHandler handler = null; + handler = delegate(object sender, EventArgs e) { + TreeView tv = sender as TreeView; + tv.Loaded -= handler; + tv.ExpandAll (); + }; + subTV.Loaded += handler; + exp.IsExpanded = true; + } + } + } } } |