如何处理任何鼠标选择事件WPF TreeView

时间:2014-02-10 10:06:56

标签: c# wpf xaml treeview

我使用了一个树视图控件,可以通过鼠标点击在wpf项目中进行交互。我的treeview有一个分层模板,可以从datacontext获取数据。

    <TreeView x:Name="bolumler" ItemsSource="{Binding}" Margin="-282,7,618,206" Grid.RowSpan="3">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type local:SectionEntity}">
                <TreeViewItem Header="{Binding Text}"/>                    
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>        
    </TreeView>

它正确显示了wpf treeview控件中的分层数据。但我无法绑定鼠标点击事件。它没有处理任何事件。请问您能在wpf treeview中使用分层模板为鼠标事件提供任何稳定的示例吗?

2 个答案:

答案 0 :(得分:2)

在项目模板中使用Textblock元素。之后,您可以轻松访问treeview上的SelectedItemChanged事件。

        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type local:SectionEntity}">
                <TextBlock Text="{Binding Text}"></TextBlock>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>

答案 1 :(得分:0)

在TreeView中使用SelectedItemChanged事件:

<TreeView Name="trvParameters" SelectedItemChanged="trvParameters_SelectedItemChanged">
    <DataTemplate DataType="{x:Type local:Test}">
         <TextBlock Text="{Binding Name}" />
    </DataTemplate>
</TreeView>

事件处理程序:

private void trvParameters_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    // e.NewValue contains selected item
}