专栏首页hbbliyongWPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法

WPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法

1.TreeView选择事件执行两次

Very often, we need to execute some code in SelectedItemChanged depending on the selected TreeViewItem. ButSelectedItemChanged is called twice. This is due to stealing focus from the main window, which is screwing something up.

What we have to do to avoid this is simply delay the call to our code, i.e., MyFunction() which we need to execute inSelectedItemChanged. Here's a workaround which delays the call to open the new window until the item selection code finishes up:

private delegate void NoArgDelegate();
 
void Window1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
  Dispatcher.BeginInvoke(DispatcherPriority.Background, 
        (NoArgDelegate)delegate { MyFunction(); });
}

2.Treeview获取父节点

   private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            //节点(是子节点或者是根节点)
            TreeViewItem item = treeView1.SelectedItem as TreeViewItem;
 
            //获取父节点
            TreeViewItem parent = item.Parent as TreeViewItem;
            //判断父节点是否存在
            if (parent != null) {
                //显示父节点信息,这里显示 Header 信息
                MessageBox.Show("父节点的Header:" + parent.Header.ToString());
            } else {
                MessageBox.Show("没有父节点!");
            }
 
        }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 5步搭建GO环境

    Easy Go Programming Setup for Windows Dec 23, 2014 I’ve had to do this more t...

    hbbliyong
  • git 创建标签 tag

    加上-a参数来创建一个带备注的tag,备注信息由-m指定。如果你未传入-m则创建过程系统会自动为你打开编辑器让你填写备注信息。

    hbbliyong
  • Intellij IDEA 添加jar包的三种方式

    一.直接复制:(不推荐) 方法:直接将硬盘上的jar包复制粘贴到项目的lib目录下即可。 ? 注意: 1.对于导入的eclipse项目,该方式添加的jar...

    hbbliyong
  • 《【面试突击】— Redis篇》-- Redis的主从复制?哨兵机制?

    高并发:redis的单机吞吐量可以达到几万不是问题,如果想提高redis的读写能力,可以用redis的主从架构,redis天热支持一主多从的准备模式,单主负责写...

    编程大道
  • Laravel-permission 用户权限管理扩展包的简单使用

    在 Laravel 中实现用户鉴权也是一个相当容易的事, Laravel 给我们提供了自带的鉴权方法 Gates 和 Policies ,但是相比较复杂的业务场...

    hedeqiang
  • 在Windows Mobile的控制台应用中使用Notification

        今天在论坛上看到有朋友问如何在Windows Mobile的控制台应用中使用Microsoft.WindowsCE.Forms.Notification...

    ShiJiong
  • 数据结构和算法——插入排序

    插入排序的工作方式是:维护已排序的子列表,一一提取主列表中的项目,然后将其插入子列表中,直到所有项目都从主列表移到子列表中为止。

    Lemon黄
  • Angular Component的DOM单元测试

    you have to create the DOM elements associated with the components, you must exa...

    Jerry Wang
  • xgd.com退出流通被新国都启用

    前几日小黑鱼科技启用xhy.com不久,又有一枚三声母域名退出了流通。

    躲在树上的域小名
  • O2O公司改名:一场从一开始就注定失败的美梦?

    孟永辉

扫码关注云+社区

领取腾讯云代金券