wpf手动生成TreeViewItem容器

2024-03-25

我正在运行时创建一个 TreeView 。它有几个节点(TreeViewItem),每个节点都有一个名称。最初它是崩溃的。单独的组合框显示所有 TreeViewItem 的名称。我必须根据所选名称突出显示 TreeViewItem。我正在使用递归函数并获取 TreeViewItem 容器,如下所示:

if (parent.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated)
                continue;

TreeViewItem container = parent.ItemContainerGenerator.ContainerFromItem(child).As<TreeViewItem>();

但它是

Parent.ItemContainerGenerator.Status = GeneratorStatus.NotStarted

对于所有折叠的项目。如何手动为它们生成容器(不扩展它们)?


每当你发现自己在视觉树上行走时,你都应该认真考虑构建视图模型。

视图模型可以增加树视图功能,而无需担心您面临的各种问题。

您的应用程序的视图模型将有一些额外的属性

IsSelected

IsExpanded

IsHighlighted

以及你的

Data

然后您可以将 IsSelected、IsHighlighted 和 IsExpanded 绑定(使用 ItemContainerStyle)到 TreeViewItem,然后当您拥有这些视图模型的集合时,您可以在视图模型上进行搜索并只需设置属性 IsHighlighted。然后视图模型会做出响应,并且由于与样式的绑定,如果需要,它会突出显示树视图项。它还可以做一些时髦的事情,比如展开上面的所有节点。树视图会对此做出响应。

视图模型与树视图结合使用时提供了更大的灵活性,并停止了那些视觉树爬行练习(这是一种黑客行为,感觉很脏)

这里有一个关于 ViewModel 和 TreeView 的好文章 http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wpf手动生成TreeViewItem容器 的相关文章

随机推荐

  • chrome 资源 css 查看器中这个奇怪的字符是什么?

    这个小混蛋让我很头疼 它不会出现在 css 文件的末尾 而是保留在括号之后 之后的任何事情都会停止运行 我想知道为什么很多代码没有运行 我决定移动代码 它从何而来 为什么 在我复制它是如何到达那里之前 我不想删除它 谢谢 这就是当您使用一个
  • T4MVC 如何排除单个文件

    有没有办法从 T4MVC 中排除某些控制器或单个文件 None
  • 在matlab中绘制颜色编码图

    我需要使用 dat 文件绘制颜色编码的二维图 文件中的数据排列为 48 000000 0 000184 0 400000 48 500000 0 000185 0 400000 49 000000 0 000186 0 400000 49
  • Python中获取网络地址和网络掩码

    在我的 Python 脚本中 我需要检索运行脚本的计算机的 IP 地址及其网络地址和网络字节 至于IP地址 我在存档中找到了解决方案 import socket s socket socket socket AF INET socket S
  • 如何在 yii2 basic 中使用日期选择器?

    我想使用 yii2 datepicker 但我在实现它时遇到了麻烦 它不显示日期选择器 我不知道我的代码中缺少什么 我对这个yii还是个新手 div class row div class col lg 6 div class myproj
  • Firestore:使用 Flutter 添加或删除现有数组中的元素[重复]

    这个问题在这里已经有答案了 是否可以向存储在 Firestore 文档中的现有数组添加或删除元素 而不是获取数组 在本地添加元素并将其发送回存储 希望是的 您可以结合使用 update 方法来附加或删除元素FieldValue arrayU
  • 在 Django 中的多个应用程序中使用相同的静态文件

    我的Django项目分为几个应用程序 静态文件存储在每个应用程序中 如下所示 Project foo static css style css views py models py urls py bar static css style
  • std::map 中 std::string 的 Valgrind 内存泄漏

    这是 Valgrind 的输出 6519 at 0x4C25885 operator new unsigned long vg replace malloc c 319 6519 by 0x4EE65D8 std string Rep S
  • 删除 ASP.NET MVC 4 到应用程序根目录的路径中的尾部斜杠

    在我的 ASP NET MVC 4 应用程序中RouteConfig文件中 我注册了以下默认路由 routes MapRoute Default controller action id new controller home action
  • 设置 jQuery.data() 是否会触发事件?

    我想知道是否致电 domElement data key newValue 会触发一个我可以处理的事件吗 我尝试过绑定change但设置数据时不会触发此操作 我认为这个问题可能会问类似的问题 但具有约束力changeData也没用 jQue
  • 在 AndroidJunit 测试项目中运行 UiAutomatorTestcase

    我实际上正在尝试在 Android Junit Test 项目中实现一个简单的测试套件 该项目使用以下类 UiObject 用户界面选择器 UiAutomator测试用例 单击并打开 Android 设备上的 Messaging 应用程序
  • java中多线程环境下的静态方法行为

    class Clstest public static String testStaticMethod String inFileStr section 0 section 1 do something with inFileStr sec
  • 允许向 ChoiceType 字段添加新值

    I use Form Component并有一个选择类型字段 http symfony com doc current reference forms types choice html在呈现到选择字段的表单上 在客户端我使用选择2插件 h
  • 亚马逊 S3 URL 编码

    如果我有一个文件名 a d1 tttt sq jpg 当它上传到 Amazon S3 时 它会转换为这样 a d1 22 tttt 22 sq jpg 因此双引号被 URL 编码并且文件名本身被更改 必须使用编码的 URL 来获取文件 a
  • 如何杀死一个pid不断变化的进程?

    我知道我可以使用这个技巧if fork exit 0 改变当前进程的pid 因此 下面的程序的 pid 变化很快 如何杀死这样的进程 有没有比执行大量更好的方法killall procname直到一个人能够奔跑kill 在分叉之前 我知道这
  • 当图像大小不同时,如何格式化图像数据以进行训练/预测?

    我正在尝试训练对图像进行分类的模型 我遇到的问题是 它们的尺寸不同 我应该如何格式化我的图像 或模型架构 你没有说你在说什么架构 既然你说你想对图像进行分类 我假设它是一个部分卷积 部分完全连接的网络 如 AlexNet GoogLeNet
  • 使用匿名方法有任何开销吗?

    我想知道创建后台工作人员时使用匿名方法是否会产生任何开销 例如 public void SomeMethod BackgroundWorker worker new BackgroundWorker worker DoWork sender
  • 算术溢出相当于模运算吗?

    我需要在 C 中进行模 256 算术 那么我可以简单地做吗 unsigned char i i 代替 int i i i 1 256 不 没有什么可以保证unsigned char有八位 使用uint8 t from
  • 向 Apache Fop 添加注释

    我正在使用渲染 PDF阿帕奇 福普 我正在制作 XSLT 模板 用于将 xml 转换为 PDF 我想使用以下方法在输出 PDF 中添加注释阿帕奇 福普 我一直在搜索 它说 iText 支持向 pdf 添加注释 是否可以在 Apache Fo
  • wpf手动生成TreeViewItem容器

    我正在运行时创建一个 TreeView 它有几个节点 TreeViewItem 每个节点都有一个名称 最初它是崩溃的 单独的组合框显示所有 TreeViewItem 的名称 我必须根据所选名称突出显示 TreeViewItem 我正在使用递