首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeView双击事件

TreeView双击事件
EN

Stack Overflow用户
提问于 2014-06-16 14:27:03
回答 1查看 10.8K关注 0票数 2

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

代码语言:javascript
复制
<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",我想要做的不是显示一个消息框,而是获取所选树形视图项目的标题,在检查它不是根目录后

代码语言:javascript
复制
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());
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-16 15:19:29

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

代码语言:javascript
复制
private void TreeView_MouseDoubleClick(object sender, RoutedEventArgs e)
{
    var menuItem = trvMenu.SelectedItem as MyProject.MenuItem;

    if (menuItem != null)
    {
        MessageBox.Show(menuItem.Title);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24237716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档