Browse Source

Set IsSelected on newly materialized TreeViewItems.

pull/396/head
Steven Kirk 11 years ago
parent
commit
6cf9a43582
  1. 22
      src/Perspex.Controls/TreeViewItem.cs

22
src/Perspex.Controls/TreeViewItem.cs

@ -73,12 +73,16 @@ namespace Perspex.Controls
/// <inheritdoc/>
protected override IItemContainerGenerator CreateItemContainerGenerator()
{
return new TreeItemContainerGenerator<TreeViewItem>(
var result = new TreeItemContainerGenerator<TreeViewItem>(
this,
TreeViewItem.HeaderProperty,
TreeViewItem.ItemsProperty,
TreeViewItem.IsExpandedProperty,
_treeView?.ItemContainerGenerator.Index ?? new TreeContainerIndex());
result.Materialized += ItemMaterialized;
return result;
}
/// <inheritdoc/>
@ -119,5 +123,21 @@ namespace Perspex.Controls
base.OnKeyDown(e);
}
private void ItemMaterialized(object sender, ItemContainerEventArgs e)
{
var selectedItem = _treeView?.SelectedItem;
if (selectedItem != null)
{
foreach (var container in e.Containers)
{
if (container.Item == selectedItem)
{
((TreeViewItem)container.ContainerControl).IsSelected = true;
}
}
}
}
}
}

Loading…
Cancel
Save