Browse Source

Set TreeView selection on item focus.

pull/72/merge
Steven Kirk 11 years ago
parent
commit
cb09e555b6
  1. 23
      Perspex.Controls/TreeView.cs

23
Perspex.Controls/TreeView.cs

@ -48,27 +48,16 @@ namespace Perspex.Controls
return new TreeItemContainerGenerator<TreeViewItem>(this); return new TreeItemContainerGenerator<TreeViewItem>(this);
} }
protected override void OnPointerPressed(PointerPressEventArgs e) protected override void OnGotFocus(GotFocusEventArgs e)
{ {
IVisual source = (IVisual)e.Source; var control = (IControl)e.Source;
var selectable = source.GetVisualAncestors() var item = this.ItemContainerGenerator.ItemFromContainer(control);
.OfType<ISelectable>()
.OfType<Control>()
.FirstOrDefault();
if (selectable != null) if (item != null)
{ {
var item = this.ItemContainerGenerator.ItemFromContainer(selectable); this.SelectedItem = item;
e.Handled = true;
if (item != null)
{
this.SelectedItem = item;
selectable.BringIntoView();
FocusManager.Instance.Focus(selectable);
}
} }
e.Handled = true;
} }
private void SelectedItemChanged(object selected) private void SelectedItemChanged(object selected)

Loading…
Cancel
Save