通常我会搜索可视树或使用itemcontainergenerator来获取容器。但是,在wpf中,hierachicaldatatemplates为每个级别都有一个itemcontainergenerator,并且它看起来并不像selectionchanged的事件参数包含实际的父项或项的容器。
我可以通过触发实际的treeviewitem的moused来解决这个问题。但是,我不能使用treeview的selectionchanged事件来访问所选项目周围的treeview项目容器,这似乎很奇怪。
答案 0 :(得分: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
}