如何将 wpf 树视图与不同类型的嵌套对象一起使用

2024-04-24

我想在树视图中显示两个类。

在我的主窗口中,我有某种类型对象的可观察集合,将其称为对象 a。 对象 a 包含另一种类型的对象(对象 b)的可观察集合。 每个对象 b 包含对象 b 的可观察集合。

例如,我可能有类似这样的东西

对象A的列表

-对象A1

--ObjectB 列表

---对象B

----ListOfObjectB 的

-----对象B

-对象A2

--ObjectB 列表

---对象B

我的 xaml 应该是什么样子才能将树视图绑定到类似的东西?

抱歉,如果我没有很好地解释这一点,我是 wpf 的新手。


RB的想法是正确的。这就是 WPF 将模板应用于普通 .NET 对象的能力变得非常强大的地方。

您需要指定两个HierarchicalDataTemplates,一个用于类型的对象a,另一个用于类型的对象b。像这样的东西:

<TreeView>
    <TreeView.Resources>
        <HierarchicalDataTemplate TargetType="{x:Type local:a}">
            <!-- XAML to display objects of type a -->
        </HierarchialDataTemplate>
        <HierarchicalDataTemplate TargetType="{x:Type local:b}">
            <!-- XAML to display objects of type b -->
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

您将需要指定绑定ItemsSource每个模板的属性,以便 WPF 知道从哪里获取子对象。另外,您还需要添加一个xmlns向根节点声明,指定对象所在的命名空间(由local在上面的示例代码中)。

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

如何将 wpf 树视图与不同类型的嵌套对象一起使用 的相关文章

  • 是否允许将类模板类型参数键入相同的名称?

    这似乎可以在 MSVC 中按预期编译甚至工作 但它是合法的 C 代码吗 它是否能保证执行此处所期望的操作 即将模板类型导出到结构体的同名用户 template
  • 在Application_AquireRequestState事件中用POST数据重写Url

    我有一个在其中注册路线的代码Application AcquireRequestState应用程序的事件 注册路由后 我会在 Http 运行时缓存中设置一个标志 这样我就不会再次执行路由注册代码 在此事件中注册路线有特定原因Applicat
  • 如何在不实例化一个类的情况下检查它是否继承了另一个类? [复制]

    这个问题在这里已经有答案了 假设我有一个如下所示的类 class Derived some inheritance stuff here 我想在我的代码中检查类似的内容 Derived is SomeType 但看起来像is运算符需要 De
  • 从 future 中检索值时的 SIGABRT

    我在使用 C 11 future 时遇到问题 当我打电话时wait or get 关于返回的未来std async 程序接收从mutex标头 可能是什么问题呢 如何修复它 我在 Linux 上使用 g 4 6 将以下代码粘贴到 ideone
  • 方法“xxx”不能是事件的方法,因为该类派生的类已经定义了该方法

    我有一个代码 public class Layout UserControl protected void DisplayX DisplayClicked object sender DisplayEventArgs e CurrentDi
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • C# datagridview 列转入数组

    我正在用 C 构建一个程序 并在其中包含一个 datagridview 组件 datagridview 有固定数量的列 2 我想将其保存到两个单独的数组中 但行数确实发生了变化 我怎么能这样做呢 假设一个名为 dataGridView1 的
  • 格式化货币

    在下面的示例中 逗号是小数点分隔符 我有这个 125456 89 我想要这个 125 456 89 其他示例 23456789 89 gt 23 456 789 89 Thanks 看看这个例子 double value 12345 678
  • 更改 IdentityServer4 实体框架表名称

    我正在尝试更改由 IdentityServer4 的 PersistedGrantDb 和 ConfigurationDb 创建的默认表名称 并让实体框架生成正确的 SQL 例如 而不是使用实体IdentityServer4 EntityF
  • 以编程方式更新 ClickOnce 应用程序的部署清单会导致缺少 4.0 中所需的 <兼容框架> 元素

    我正在致力于自动化 NET 4 0 ClickOnce WPF 应用程序的安装程序 该应用程序需要在应用程序配置文件 我经历了寻找必须遵循的具体步骤的棘手过程Mage exe http msdn microsoft com en us li
  • 可观察集合未因 UI 更改而更新

    我正在尝试将可观察集合绑定到用户控件 但它不会在用户更改时更新 但在通过代码更改用户控件时它会更新 以下是我尝试过的一个例子 它可能有点长 但它正在运行 因此您可以按原样复制并粘贴代码 请参阅帖子末尾我的问题 客户 cs using Sys
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • 不兼容的类型 - 是因为数组已经是指针吗?

    在下面的代码中 我创建一个基于书籍结构的对象 并让它保存多个 书籍 我设置的是一个数组 即定义 启动的对象 然而 每当我去测试我对指针的了解 实践有帮助 并尝试创建一个指向创建的对象的指针时 它都会给我错误 C Users Justin D
  • 使用 foreach 循环和 XmlNodeList C# 将新节点附加到节点列表

    目前我处理的是这样的XML类型 XML FILE http 20drive google com open id 0By5BxgNi9eGcRldxcEZNU0FDTzQ 参考XML文件 我想检查一个节点 如果找不到该节点 我必须将该节点附
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • ASP.NET Core Razor Page 多路径路由

    我正在使用 ASP NET Core 2 0 Razor Pages 不是 MVC 构建系统 但在为页面添加多个路由时遇到问题 例如 所有页面都应该能够通过 abc com language 访问segment shop mypage 或
  • 启动画面后主窗口出现在其他窗口后面

    我有一个带有启动屏幕的 Windows 窗体应用程序 当我运行该应用程序时 启动屏幕显示正常 消失并加载应用程序的主窗体 但是 当我加载主窗体时 它出现在包含该应用程序的 Windows 资源管理器目录下 这是运行启动画面然后运行主窗体的代
  • c# 模拟 IFormFile CopyToAsync() 方法

    我正在对一个异步函数进行单元测试 该函数将 IFormFile 列表转换为我自己的任意数据库文件类列表 将文件数据转换为字节数组的方法是 internal async Task
  • 新的 .NET 6 控制台模板中的 C# 函数重载不起作用

    我在尝试重载该函数时遇到错误Print object in the 新的 NET 6 C 控制台应用程序模板 https learn microsoft com en us dotnet core tutorials top level t

随机推荐

  • 通过日期时间列表根据日期列更新 pandas 数据框列

    老问题 https stackoverflow com q 73168797 15975987 详情请参考上述问题 我需要添加 0 5 个工作日business days第二个列表中不在第一个列表中的每个假期的列 这是一个名为 df 的示例
  • 值的 Ocaml 表示 - 原子

    我查看了一些 OCaml 值的内部表示 空数组的表示是atom 0 即一个块tag 0 and size 0 空浮点数数组由atom 0 too 是否存在由原子表示的任何 OCaml 值tag gt 0 如果不是 OCaml 字节码集包含以
  • AWS Kinesis ShardIteratorType TRIM_HORIZON 的预期行为

    Context 我不一定指的是基于 KCL 的应用程序 只是纯粹的 Kinesis API 调用 是否使用TRIM HORIZON分片迭代器类型立即为您提供流中最早发布的记录 即 Kinesis 内置 24 小时窗口内最早可用的记录 或者只
  • 初始化类和实例化对象之间的区别?

    我尝试通过搜索引擎搜索这个问题 但可以找到一个主题来解释初始化类和实例化对象之间的区别 有人可以解释一下它们有何不同吗 与该主题相关的三个术语是 声明 初始化和实例化 从后到前工作 实例化 这是为对象分配内存的时候 这就是new关键字正在做
  • 在 F# 中的 Choice 之上构建 Either(或 Result)

    我根据 Scott Wlaschin 中的信息构建了一个成功 失败的 monadblog http fsharpforfunandprofit com posts computation expressions wrapper types
  • OpenAI GPT-3 API:如何让模型记住过去的对话?

    有没有办法训练一个大语言模型 法学硕士 存储特定的上下文 例如 我有一个很长的故事 我想提出问题 但我不想把整个故事放在每个提示中 如何才能让LLM 记住这个故事 考虑到 GPT 3 模型没有能够记忆过去对话的参数 看来目前 记忆 过去对话
  • 在 linux shell 中执行程序时得到“dquote>”

    当我在 Linux shell 中执行脚本时 我得到以下输出 dquote gt 这是什么意思 这意味着您执行了一行仅包含一个双引号字符的代码 如下所示 echo Hello shell 正在等待其他报价
  • 将 iPhone/iPad 应用程序合并为一个通用应用程序

    我有两个应用程序 一个用于 iPhone 另一个用于 iPad 我想将它们合并为一个通用应用程序 在我的第一次尝试中 我尝试创建一个新的通用应用程序项目并添加适用于 iPhone 和 iPad 版本的库 iPad 版本编译并运行良好 如预期
  • 如何使用 Cloud Composer 将大数据从 Postgres 导出到 S3?

    我一直在使用 Postgres to S3 运算符将数据从 Postgres 加载到 S3 但最近 我必须导出一个非常大的表 并且我的 Airflow Composer 失败 没有任何日志 这可能是因为我们正在使用 Python 临时文件模
  • 内容脚本仅在重新加载/刷新时加载

    这是我第一次创建 Google Chrome 扩展程序 我无法找到一种方法来可靠地让内容脚本在单击 YouTube 上的建议视频或任何相关视频时运行一次 我尝试将 all frames 设置为 true 但这会多次调用脚本 浏览 YouTu
  • 在并发程序中从 BlockingQueue 获取对象的最佳方法?

    在并发程序中 从 BlockingQueue 中取出对象而不遇到竞争条件的最佳方法是什么 我目前正在执行以下操作 但我不相信这是最好的方法 BlockingQueue
  • 如何在 Python3 中将字符串添加到 tarfile

    我在添加时遇到问题str到 python 中的 tar 存档 在python 2中我使用了这样的方法 fname archive name params src some arbitrarty string to be added to t
  • 如何将参数传递给用 C# 编写的托管代码 dll 的自定义操作?

    我有一个要求 必须将 3 个参数传递给 C 代码 以便在 installshield 中执行托管代码自定义操作 给不了代码啊请有人帮助我 即使是基本的方法 提前致谢 既然您提到了自定义操作 请参阅在程序集自定义操作中指定托管方法的签名 ht
  • Jsf 生命周期 - 验证失败后渲染响应

    我希望 BalusC 或一位 JSF 专家能够帮助我了解 JSF 生命周期的细节 尤其是渲染 我很难理解的是 在渲染响应期间 从模型中获取值并将其显示给用户 现在 如果存在验证错误 则模型不会更新 因此渲染器必须向用户显示组件树中的无效值
  • 在 Magento 中显示产品所属的所有类别

    我正在构思一个新的 Magento 网站 该网站将包含多个类别的产品 我想知道是否可以在产品详细信息页面上显示产品所属的所有类别 我知道有可能得到the类别 但是否可以显示列表all产品属于哪些类别 例如 衬衫可以包含在Shirts类别 以
  • Rails 从一个邮件程序功能发送 2 封不同的电子邮件

    我有必要这样做 因为对我来说这似乎合乎逻辑 def notification vehicle vehicle vehicle mail to gt vehicle owner email address template name gt n
  • 在Servlet中获取真实的客户端IP [重复]

    这个问题在这里已经有答案了 我在一个简单的问题上遇到了一些麻烦 我会得到HTTPServlet 内的真实客户端 IP 从现在开始我使用 request getRemoteAddr 但现在它返回一个错误的IP 例如 xxx xxx xxx 5
  • 与 MySQL 中的 SQL Server EXCEPT 运算符类似的功能吗?

    MySQL中是否有类似的操作数 函数 命令EXCEPT http msdn microsoft com en us library ms188055 aspxSQL Server 中的操作数 EXCEPT返回左侧查询中未在右侧查询中找到的任
  • Haskell 将两个列表中不同索引处的元素组合起来

    对这个糟糕的标题表示歉意 我不太确定如何用语言描述它 但这就是我的意思 如果您知道更好的表达方式 请告诉我 假设我有 2 个长度相等的列表 a b c x y z 我想创建列表 a y z b x z c x y 本质上 对于 list1
  • 如何将 wpf 树视图与不同类型的嵌套对象一起使用

    我想在树视图中显示两个类 在我的主窗口中 我有某种类型对象的可观察集合 将其称为对象 a 对象 a 包含另一种类型的对象 对象 b 的可观察集合 每个对象 b 包含对象 b 的可观察集合 例如 我可能有类似这样的东西 对象A的列表 对象A1