0

通常我会搜索可视化树或使用 itemcontainergenerator 来获取容器。但是,在 wpf hierachicaldatatemplates 中,每个级别都有一个 itemcontainergenerator,并且看起来 selectionchanged 的​​事件参数不包含实际的父项或项的容器。

我可以通过触发实际 treeviewitem 的 mousedown 来解决这个问题。但是,我不能使用 treeview 的 selectionchanged 事件来访问所选项目周围的 treeview 的 itemcontainers 似乎很奇怪。

4

1 回答 1

2

在 TreeView 声明中:

<TreeView Name="myTreeView" TreeViewItem.Selected="OnItemSelected"
ItemsSource="{Binding Source={StaticResource myHierarchicalData}}"/>

OnItemSelected 处理程序:

private void OnItemSelected(object sender, RoutedEventArgs e)
{
    myTreeView.Tag = e.OriginalSource;
}

下面是访问 TreeViewItem 的代码:

if (myTreeView.SelectedItem != null)
{
    TreeViewItem selectedTVI = myTreeView.Tag as TreeViewItem;

    // add your code here
}
于 2013-08-13T23:30:51.443 回答