树视图中任何项目的OnExpanded事件

时间:2009-09-07 07:18:34

标签: c# wpf data-binding treeview

我希望在我的树视图中获得一个treeviewitem扩展的事件。

原因,与原问题有点无关: 我正在创建一个与xml文件树紧密相关的树,但是我在xml中允许包含元素,因此树可以跨多个文件。我想在扩展时在treeview中设置treeviewitems的itemssource属性。

1 个答案:

答案 0 :(得分:28)

您可以将TreeViewItem.Expanded事件用作附加事件:

<TreeView TreeViewItem.Expanded="TreeViewItem_Expanded"
          ItemsSource="{Binding}">
    ...
</TreeView/>

在代码隐藏中,您可以使用TreeViewItem属性识别发起事件的OriginalSource

    private void TreeViewItem_Expanded(object sender, RoutedEventArgs e)
    {
        TreeViewItem tvi = e.OriginalSource as TreeViewItem;
        if (tvi != null)
        {
            MessageBox.Show(string.Format("TreeNode '{0}' was expanded", tvi.Header));
        }
    }