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/> /// <inheritdoc/>
protected override IItemContainerGenerator CreateItemContainerGenerator() protected override IItemContainerGenerator CreateItemContainerGenerator()
{ {
return new TreeItemContainerGenerator<TreeViewItem>( var result = new TreeItemContainerGenerator<TreeViewItem>(
this, this,
TreeViewItem.HeaderProperty, TreeViewItem.HeaderProperty,
TreeViewItem.ItemsProperty, TreeViewItem.ItemsProperty,
TreeViewItem.IsExpandedProperty, TreeViewItem.IsExpandedProperty,
_treeView?.ItemContainerGenerator.Index ?? new TreeContainerIndex()); _treeView?.ItemContainerGenerator.Index ?? new TreeContainerIndex());
result.Materialized += ItemMaterialized;
return result;
} }
/// <inheritdoc/> /// <inheritdoc/>
@ -119,5 +123,21 @@ namespace Perspex.Controls
base.OnKeyDown(e); 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