TreeView双击事件

时间:2014-06-16 06:27:03

标签: c# wpf treeview

我想在TreeView上定义双击,以便我能够知道TreeView中的哪个项目被选中并获得他的头衔。 我试图获得它的标题的方式让我“MyProject.MenuItem”。 如何引用树上的选定项目,确保它不是根,并获得它的标题? 我做了什么:

<TreeView Name="trvMenu" HorizontalAlignment="Left" Height="312" VerticalAlignment="Top" Width="200" MouseDoubleClick="TreeView_MouseDoubleClick" >
        <TreeView.ItemTemplate>
               <HierarchicalDataTemplate DataType="{x:Type local:MenuItem}" ItemsSource="{Binding Items}">
                     <TextBlock Text="{Binding Title}" />
               </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
</TreeView>

MessageBox显示“MyProject.MenuItem”,我想要做的不是显示消息框,而是获取所选树视图项的标题,检查后它不是根

private void TreeView_MouseDoubleClick(object sender, RoutedEventArgs e)
    {
        if (sender is TreeViewItem)
            if (!((TreeViewItem)sender).IsSelected)
                return;
        TreeViewItem tviSender = sender as TreeViewItem;
        MessageBox.Show(trvMenu.SelectedItem.ToString());
    }

1 个答案:

答案 0 :(得分:1)

更改双击处理程序,如下所示。它不是调用ToString,而是访问Title项目类的MenuItem属性。

private void TreeView_MouseDoubleClick(object sender, RoutedEventArgs e)
{
    var menuItem = trvMenu.SelectedItem as MyProject.MenuItem;

    if (menuItem != null)
    {
        MessageBox.Show(menuItem.Title);
    }
}