使用 wpf HierarchicalDataTemplate 接口的任何方式

2024-01-20

您好,我正在使用接口 IFooNode,它是树的一部分。
我想使用 HierarchicalDataTemplate 在 TreeView 中显示这棵树。 然而,由于接口的原因,这不起作用。 我看到两种方法,但都不是我所说的“好”

  1. 找出真正实现 IFooNode 的类型(我们称之为 FooNode...),然后找到定义 FooNode 的程序集,添加对该程序集的引用并为 FooNode 创建一个 HierarchicalDataTemplate(希望实现类永远不会改变...)

  2. 编写一个包装 IFooNode 的类 MyCoolIFooNodeWrapperForWpf,不绑定到树,而是从树根填充 MyCoolIFooNodeWrapperForWpf 列表,并为 MyCoolIFooNodeWrapperForWpf 创建一个 HierarchicalDataTemplate。

我可以以某种方式always应用 HierarchicalDataTemplate,无论数据是什么类型(我认为这将是两害相权取其轻...)

还有其他想法吗?


您可以使用 ItemTemplateSelector。在选择器的代码中,您可以检查数据对象实现的接口,并为此项目选择适当的 DataTemplate/HeirarchicalDataTemplate。

选择器既可以应用于容器本身 (ItemsControl.ItemTemplateSelector),也可以应用于分层数据模板 (HeirarchicalDataTemplate.ItemTemplateSelector)。

我认为这是两害相权取其轻。

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

使用 wpf HierarchicalDataTemplate 接口的任何方式 的相关文章

  • 如何使用 WPF 用户控件关闭父窗口

    假设我有两个 WPF 窗口 window One 和 window Two window One 有一个按钮 单击此按钮将打开 window Two window Two contains a User Control 该用户控件有一个用于
  • 使用 WPF 动态加载内容

    好的 我有一个容器 我为其创建了两个数据模板 基本上 一个模板将显示 5 个文本框 其中包含绑定到它们的对象数据 另一个模板将显示一个用于添加该特定对象的按钮 我对 DataTemplateSelector 进行了子类化 它可以工作 但是当
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • WPF 画布缩放/变换以适合

    我重新发布这个问题 因为上次我没有得到太多答复 希望重新措辞可能有所帮助 本质上 我想做的是创建一个数据绑定画布 它将自动缩放其内容以 填充 可用空间 有点像缩放以适应操作 不幸的是 我的 WPF 技能还不是很强 我正在努力弄清楚如何完成最
  • WindowsFormsHost ZOrder

    看起来 WindowsFormsHost 控件被设置为显示在顶部 有没有办法更改其 z 顺序 以允许同一窗口上的其他 WPF 控件在 WindowsFormsHost 控件之上可见 不幸的是 不能 由于 winformshost 合成到 W
  • WPF:绑定到 ControlTemplate 中的命令

    我正在尝试向自定义 ListView MyListView 添加一个按钮 该按钮会触发 MyListView 中定义的命令 MyCustomCommand 我通过应用 ControlTemplate 添加了按钮 和标题文本 问题是我还没有找
  • 将 WPF 控件类作为模板类

    有没有办法让 WPF UserControl 类成为具有模板类型的类 例如 public partial class MyControl UserControl 应该 public partial class MyControl
  • 命令绑定到 ContextMenu(在 ListBox 中的 ListBoxItem 上)不起作用[重复]

    这个问题在这里已经有答案了 在 WPF 中 借助 MVVM 光 有一个Class 由一些学生组成 以及Class持有一些Students 右键单击一个学生的名字 然后会显示一个MessageBox 这样就可以了 类详细信息视图 xaml
  • WPF 列表框 + 扩展器事件

    我在列表框的 ItemTemplate 中有一个 Expander 渲染得很好 我遇到的问题是 我希望在展开和 或选择扩展器时触发 ListBox SelectionChanged 事件 MouseDown 事件似乎没有冒泡到 ListBo
  • WPF Dispatchertimer 延迟反应/冻结

    在我的 WPF 应用程序中 我使用 3 个不同的 DispatcherTimers 一种是用于显示当前时间 一种是每 5 秒运行一次数据库查询 第三个每 1 秒刷新一次自定义按钮的值 当我的程序运行时 有很多延迟 冻结 例如 时间开始正确计
  • 在目标 VS 安装时,VSIX 扩展内部使用的 WPF-Log4Net 未输出日志

    当 Log4net 在 VSIX 扩展中使用并安装在另一个目标 VS 上时 它不会记录日志 我有一个 WPF 解决方案 我下载了 log4net dll 添加了 log4net config 并将 复制到输出目录 值设置为 始终复制 log
  • 我的 WPF 应用程序未触发 MainWindow_Loaded

    我目前正在关注Pluralsight C Fundamentals Part 1并在Classes and Objects视频部分指导我在 Visual Studio 中创建一个新的 WPF 应用程序并填写代码 这导致以下结果 namesp
  • Microsoft.Windows.Design.dll

    我下载了库 DynamicDataDisplay 其源代码 某些项目需要 Microsoft Windows Design dll 文件 我在哪里可以得到它 我搜索过它 但它不存在于我的硬盘上 如果您有 Visual Studio 等 则应
  • 绑定到内部 ViewModel-Property

    我有一个 UserControl 其 ViewModel 类作为 DataContext XAML
  • Visual Studio 2010 解决方案的 MSBuild 命令行执行无法引用 VS2010 SDK 来构建扩展

    Scenario 包含 VS2010 扩展的解决方案 NET 4 类库 带有 WPF UI 它在视觉工作室内部构建得很好 On the 同一台机器当我尝试通过命令行构建它时 作为构建脚本的一部分 Fails when using this
  • wpf 中的双显示器双窗口应用程序

    我正在尝试创建一个带有媒体元素的 wpf 视频播放器 我的目标是为该应用程序制作多个窗口 每个窗口将显示在不同的显示器上 就像主窗口将获取主显示器的分辨率并调整自身大小以全屏显示一样 辅助监视器上的第二个窗口等等 到目前为止 我已将主窗口设
  • WPF 自定义控件构造、触发器和事件

    我想构建一个新的自定义控件 我发现很少有教程可以给我一些如何实现这一目标的线索 据我了解 创建新的自定义控件总是通过扩展当前控件来完成 甚至可以扩展 例如 从层次结构的非常基本的级别进行控制 您甚至可以扩展 用户界面元素 框架元素 Cont
  • WPF 自定义 TabItem - 控件未显示在 Visual Studio 设计器中

    我创建了一个自定义 TabItem 其中包含 DockPanel 和 Button XAML
  • 如何在运行时动态更改 DataGrid String 列格式?

    我的 WPF 桌面应用程序提供了一个 UI 来搜索人员并在 DataGrid 中显示结果 此外 用户可以在运行时更改语言 Current UI Culture XAML 中的 DataGrid 定义是
  • WPF:按钮单击+双击问题

    我必须处理 WPF 应用程序中按钮的单击和双击 并具有不同的反应 不幸的是 在双击时 WPF 会触发两个单击事件和一个双击事件 因此很难处理这种情况 它试图使用计时器来解决它 但没有成功 我希望你能帮助我 我们看一下代码 private v

随机推荐

  • MySQL DROP 所有表,忽略外键

    有没有一种简单的方法可以从 MySQL 数据库中删除所有表 忽略其中可能存在的任何外键约束 我发现生成的 drop 语句集很有用 并建议进行以下调整 将生成的 drop 限制到您的数据库 如下所示 SELECT concat DROP TA
  • SQL:标记哪个 WHERE 条件匹配

    这是一个理论问题 我想知道是否有一个好的方法来找出 WHERE 语句中的哪个条件匹配 假设我有一个这样的查询 SELECT FROM table WHERE COND1 OR COND2 AND COND3 OR COND4 有什么方法可以
  • pytest:如何创建专用测试目录

    我想要以下项目结构 folder tests project 我们来写一个简单的例子 test pytest tests test sum py t pytest sum py init py 总和 py def my sum a b re
  • JComboBox设置标签和值

    是否可以为a设置一个值和一个标签JComboBox所以我可以显示标签但获得不同的值 例如在 JavaScript 中我可以这样做 document getElementById myselect options 0 value access
  • 添加头文件的 CMake 构建错误 - 致命错误:找不到文件

    我在 Ubuntu 14 04 中使用 CMake 构建 C 源文件 我有一个主要源文件 这包括一个头文件 其中包含另一个源文件中的函数 我的主要源文件是 DisplayImage cpp 头文件是 Camera h 其中包含源文件 Cam
  • Javascript 在分配给其他变量时丢失上下文

    为什么在 javascript 中 如果您将对象方法引用到某个变量 它会丢失该对象上下文 找不到任何链接来解释幕后发生的事情 除了这一篇指出 this 指的是 拥有 该方法的对象 http www sitepoint com what is
  • 在 Android App Bundle 中添加 SwitchCompat 后,找不到资源错误 res/drawable/abc_switch_thumb_material.xml

    我知道这个问题已经被问过好几次了 我已经阅读了所有这些问题 并匹配了所有依赖项 以便它们具有相同的版本 但是这个错误只有在添加 Switch Compat 之后才开始发生 因为您还可以通过查看 Fabric 的崩溃报告来看到这一点 此错误并
  • 尝试启动我的应用程序时出现“没有适当的协议错误”

    我已经使用带有 SSL 证书的 nginx 代理在临时环境和生产环境中成功运行了一个 Spring Boot Web 应用程序几个月了 突然间 昨晚当应用程序尝试发送邮件消息时 当我尝试连接到邮件服务器时 我开始在生产服务器中看到错误 在尝
  • Google Sites API + OAuth2(在 Appengine 上)

    我一直在尝试利用 Python 库来访问 Google Sites API 第一步需要用户授权我们的应用程序 他们建议使用 OAuth2 并且他们提供了一个可以找到的库here http code google com p google a
  • 将桌子分成两半

    无论如何 是否可以使用 CSS 将表格分成两半并并排显示两个部分 例如 采取这个 row1 row1 row1 row2 row2 row2 row3 row3 row3 row4 row4 row4 row5 row5 row5 并做这个
  • 什么是纯 Java [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我受邀参加 Pure Java Developer 面试 请帮助我理解什么是纯Java 找不到任何有关它的信息 纯Java代码是这样的代码 符合
  • 在 Haskell 中基于新类型(“包装类型”)构建函数的惯用方法是什么?

    Let StringWrapper1 and StringWrapper2是包裹字符串的两种类型 即newtype StringWrapper1 StringWrapper1 String and newtype StringWrapper
  • 导入错误:没有名为 6 的模块

    我正在尝试构建 OpenERP 项目 并完成依赖项 现在出现这个错误 Traceback most recent call last File openerp client py line 105 in
  • 理解 PyTorch 中使用backward()的梯度计算

    我试图了解基本的 pytorch autograd 系统 x torch tensor 10 requires grad True print tensor x x backward print gradient x grad output
  • 使用 javascript/jquery 查找链接目标是否为图像

    我正在尝试编写一个脚本来找到所有 a 目标是 jpg gif 或 png 的标签 并向它们附加一个函数 a filter function return this href match probably some regex here bi
  • 如何根据姓名和 ID 计算 C 列中的“否”?

    我有 3 列 A B C Name ID Report 在 A 列中我有名字 可以重复 在 B 列中 我有 ID 可以为不同的名称重复使用相同的 ID 在 C 列中 我有 是 和 否 可以对同一 ID 重复使用 否 我需要帮助来计算 Joh
  • 在 Android 寻呼机中隐藏应用程序标题栏

    Can anyone tell how to hide the app title bar in Pager fragment 这应该足够了 ActionBar bar getActionBar you might need to use
  • git中的暂存区有什么用

    我对 git 很陌生 我刚刚了解了工作目录和暂存区域的概念 我不太清楚暂存区的用途 如果暂存区域不存在并且我们可以直接从工作目录提交到本地存储库 可能会出现什么问题 抱歉 如果我的问题很愚蠢 谢谢并致以问候 京东 你的问题一点也不傻 它是构
  • 如何使用 CXF、JAX-RS 和 HTTP 缓存

    The CXF http cxf apache org 文档提到缓存为高级HTTP http cxf apache org docs jax rs html JAX RS AdvancedHTTP CXF JAXRS 通过处理 If Mat
  • 使用 wpf HierarchicalDataTemplate 接口的任何方式

    您好 我正在使用接口 IFooNode 它是树的一部分 我想使用 HierarchicalDataTemplate 在 TreeView 中显示这棵树 然而 由于接口的原因 这不起作用 我看到两种方法 但都不是我所说的 好 找出真正实现 I