WPF TreeView

1.TreeView选择事件执行两次

    Very often, we need to execute some code in    SelectedItemChanged    depending on the selected     TreeViewItem    . But    SelectedItemChanged    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 in    SelectedItemChanged    . 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("没有父节点!");
    }
}
复制代码

 

3、使用HiberDataTemplate填充TreeView

 

4、表格格式的TreeView

 

posted @   张疯牛  阅读(271)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
石家庄坦图计算机科技有限公司 石家庄市丰收路220号泽润大厦17层
点击右上角即可分享
微信分享提示