|
|
@ -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; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|