Browse Source

Search logical tree for root TreeView.

pull/386/head
Steven Kirk 11 years ago
parent
commit
8fe84fa1dc
  1. 9
      src/Perspex.Controls/TreeViewItem.cs
  2. 8
      tests/Perspex.Controls.UnitTests/TreeViewTests.cs

9
src/Perspex.Controls/TreeViewItem.cs

@ -7,8 +7,7 @@ using Perspex.Controls.Mixins;
using Perspex.Controls.Primitives; using Perspex.Controls.Primitives;
using Perspex.Controls.Templates; using Perspex.Controls.Templates;
using Perspex.Input; using Perspex.Input;
using Perspex.Rendering; using Perspex.LogicalTree;
using Perspex.VisualTree;
namespace Perspex.Controls namespace Perspex.Controls
{ {
@ -83,10 +82,10 @@ namespace Perspex.Controls
} }
/// <inheritdoc/> /// <inheritdoc/>
protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e)
{ {
base.OnAttachedToVisualTree(e); base.OnAttachedToLogicalTree(e);
_treeView = this.GetVisualAncestors().OfType<TreeView>().FirstOrDefault(); _treeView = this.GetLogicalAncestors().OfType<TreeView>().FirstOrDefault();
} }
/// <inheritdoc/> /// <inheritdoc/>

8
tests/Perspex.Controls.UnitTests/TreeViewTests.cs

@ -59,10 +59,10 @@ namespace Perspex.Controls.UnitTests
DataTemplates = CreateNodeDataTemplate(), DataTemplates = CreateNodeDataTemplate(),
}; };
// For TreeViewItem to find its parent TreeView, OnAttachedToVisualTree needs // For TreeViewItem to find its parent TreeView, OnAttachedToLogicalTree needs
// to be called, which requires an IRenderRoot. // to be called, which requires an IStyleRoot.
var visualRoot = new TestRoot(); var root = new TestRoot();
visualRoot.Child = target; root.Child = target;
ApplyTemplates(target); ApplyTemplates(target);

Loading…
Cancel
Save