【问题标题】:How to Handle Any Mouse Select Event WPF TreeView如何处理任何鼠标选择事件 WPF TreeView
【发布时间】:2014-03-07 14:30:34
【问题描述】:

我正在使用一个树视图控件,该控件将通过 wpf 项目中的鼠标单击进行交互。我的树视图有一个从 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 中使用分层模板提供鼠标事件的任何稳定示例?

【问题讨论】:

    标签: c# wpf xaml treeview


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      在 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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多