From cb09e555b69f83aa84d8bb785eae34c5407070cf Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 7 Aug 2015 00:59:13 +0200 Subject: [PATCH] Set TreeView selection on item focus. --- Perspex.Controls/TreeView.cs | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/Perspex.Controls/TreeView.cs b/Perspex.Controls/TreeView.cs index ca1123597c..8b070b20f8 100644 --- a/Perspex.Controls/TreeView.cs +++ b/Perspex.Controls/TreeView.cs @@ -48,27 +48,16 @@ namespace Perspex.Controls return new TreeItemContainerGenerator(this); } - protected override void OnPointerPressed(PointerPressEventArgs e) + protected override void OnGotFocus(GotFocusEventArgs e) { - IVisual source = (IVisual)e.Source; - var selectable = source.GetVisualAncestors() - .OfType() - .OfType() - .FirstOrDefault(); + var control = (IControl)e.Source; + var item = this.ItemContainerGenerator.ItemFromContainer(control); - if (selectable != null) + if (item != null) { - var item = this.ItemContainerGenerator.ItemFromContainer(selectable); - - if (item != null) - { - this.SelectedItem = item; - selectable.BringIntoView(); - FocusManager.Instance.Focus(selectable); - } + this.SelectedItem = item; + e.Handled = true; } - - e.Handled = true; } private void SelectedItemChanged(object selected)