问题标签 [hierarchicaldatatemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
210 浏览

silverlight - HierarchicalDataTemplate ItemsSource 到单数 Item

我想做 aTreeView来显示分层数据,但似乎HierarchicalDataTemplate'ItemsSource指向一个IEnumerable对象,其中我的子值是一个单数项(类似于具有 InnerException 属性的 Exception),是否可以为此使用 a HierarchicalDataTemplate?如果是,请提供一些示例 xaml,否则我该怎么办?

我正在使用 SL4,如果只是 SL5,那么我可以在绑定中尝试一个断点......

0 投票
2 回答
2550 浏览

.net - Silverlight 4:TreeView/ HierarchicalDataTemplate/ AutoExpand 问题

我的 silverlight 应用程序中有一个树视图控件,它使用 2 个 HierarchicalDataTemplate(s) 以所需格式显示数据。我希望在第一次打开时自动扩展这棵树(最好是我可以随时调用的代码片段)。

给定代码的任何替代方案也将受到欢迎。

此控件绑定到 BurstPage 类的 Observable 列表。完整的数据结构如下:

父元素是包含 1 到 n 个 BurstPage 对象的 Burst 对象,任何给定的 BurstPage 都可能有 1 到 n 个 Keypoint 对象。

BurstPage.Name(比如 1) Keypoint.Name(比如 A) Keypoint.Name(比如 B) Keypoint.Name(比如 C) BurstPage.Name(比如 2) BurstPage.Name(比如 3) Keypoint.Name(比如 D) Keypoint .Name(比如 E)

0 投票
2 回答
3026 浏览

silverlight - Silverlight 4:TreeView/HierarchicalDataTemplate/获取选定节点/叶子问题

对于上面的 XAML,我需要以编程方式知道,哪个是选定的节点或叶子?

0 投票
1 回答
536 浏览

c# - How do I use parent's ItemsHost for HierarchicalDataTemplate in XAML?

I have a tree- or menu-like data structure which I want to display in a Panel (specifically a self-made PolarPanel), but all items must be VisualChildren of the same panel.

If I define a HierarchicalDataTemplate, I need to create an ItemsControls and specify it as IsItemsHost, or am I mistaken here? Can I somehow reference the parent's ItemsHost?

(My first workaround was to have a GetAllTheChildren property in the root node which returns all children and all children of the SelectedChild, recursively. This doesn't easily work together with ObservableCollection, because changes have to bubble up to the root to refresh GetAllTheChildren again (which reloads more items than would be neccessary).)

I know I can do it in code-behind by creating and drawing the items' Views into the same parent, but I'm searching for a nice WPF, indirect, automagic way.

EDIT: I am now using an improved workaround, where all ItemControls / Panels are drawn on top of each other. This preserves the hierarchical aspect, which makes this a much better solution than the one mentioned above (with GetAllTheChildren). But it still doesn't answer my question...

This is what it looks like graphically:
PolarMenu example
Note how the hierarchical elements have to be arranged in the same space.

Is there a clean and simple solution to this?

0 投票
1 回答
1430 浏览

c# - 树视图项验证

我正在尝试验证树视图中的项目。主要思想是用户从树中选择一个对象并加载其可以编辑的详细信息。这一切都很好,因为我已经INotifyPropertyChanged连接了,但是......我的模型已经连接了验证逻辑(IDataErrorInfo),我也想在树视图中显示它(突出显示有验证错误的项目)。

我已经尝试了一些事情,但我只是不知道将验证放在绑定中的哪个位置以使其像我希望的那样工作。

我的验证控制模板:

树视图:

基本上,如果基础模型有验证错误,我会尝试在树视图中的项目旁边放置一个小图标。

我尝试过使用 BindingGroup ,但这对我来说是一个新话题,所以我不确定这是否是可行的方法。

有任何想法吗?

0 投票
1 回答
637 浏览

wpf - 在 HierarchicalDataTemplate 中使用 XPath 绑定 CommandParameter 时遇到问题

我对 WPF 比较陌生,遇到了一个小问题。使用 HierarchicalDataTemplates,我成功地将 XML 绑定到 TreeView 控件。每个节点都正确渲染(包括 SubstepTemplate 中的标签)。

我什至可以从 SubstepTemplate 中的按钮获取 ViewModel 中的绑定命令,但前提是我为 CommandParameter 输入硬编码值(例如 999)。在我的 XML 中绑定到 commandID 属性的所有尝试都失败了。

这是我现在所拥有的:

XML:

XAML:

视图模型片段:

需要进入 CommandParameter 以使其正常工作的正确绑定表达式是什么?{Binding XPath=@commandID} 似乎不起作用,我不明白为什么不这样做。

0 投票
1 回答
5696 浏览

wpf - WPF TreeView HierarchicalDataTemplate - 绑定到具有多个子集合的对象 - >重新加载

我看过几篇有类似问题的帖子,我已经尝试全部关注它们。现在终于我在屏幕上获得了所有数据,但不是我想要的方式。但是让我们开始吧。

我有一个 ViewModel,它提供如下数据:

这是我的 xaml-TreeView 代码:

这就是输出的样子:

http://imgh.us/bu_treeview.jpg

我想要的是这样一个完整的结构:

...

那么我在这里错过了什么?帮助表示赞赏,谢谢!

0 投票
1 回答
605 浏览

wpf - 具有多个子项的层次树

我试图围绕如何使用 MVVM 模式在 WPF 中解决这个问题。

我正在将一个 win32 树控件转换为 WPF。旧的树控件沿这些线使用节点类层次结构(BaseNode 是基类,并且从它继承并略微扩展的每个以下项):BaseNode、GroupNode、VehicleNode、PersonNode、EquipmentNode、SupplyNodes (等等)

由此,GroupNode 将有一个子节点列表,可以是一个或多个 GroupNode、一个或多个 VehicleNode 和一个或多个 PersonNode。

VehicleNode 将有一个 PersonNode 列表,这些 PersonNode 将是操作车辆的工作人员。VehicleNode 还会有一个 PersonNode 列表,这些 PersonNode 将是车辆中的乘客。这些中的每一个都位于标记为 Crew 和 Passengers 的“虚拟”节点下(尽管它们都是 PersonNode 类型)。

除此之外,VehicleNode 和 PersonNode 将分别具有 EquipmentNodes 和 SupplyNodes。

树将有几个“组”节点,这些节点将被扩展以列出该类型的任何项目。

希望此文本图将有助于解决说明问题。

  • 地面舰队(GroupNode)
    • 西海岸 (GroupNode)
    • 东海岸 (GroupNode)
      • 卡车 1(VehicleNode)
      • 卡车 2(VehicleNode)
        • 船员(DummyNode)
          • 给司机开账单(PersonNode)
        • 乘客(虚拟节点)
          • 乘客 1 (PersonNode)
          • 乘客 2 (PersonNode)
            • 设备(DummyNode)
              • 相机(设备节点)
              • 太阳镜(设备节点)
            • 耗材(虚拟节点)
              • 苹果(供应节点)
              • 水瓶(SupplyNode)
          • 设备(DummyNode)
            • 杰克(设备节点)
            • 轮胎熨斗(设备节点)
          • 耗材(虚拟节点)
            • 备用轮胎(供应节点)
      • 人员(DummyNode)
        • 推销员汤姆(PersonNode)
        • 区域经理 Sally (PersonNode)
所以 Truck 2 (VehicleNode) 的实例有六个不同类型的子节点(BaseNodes 列表): List children;// {Bill The Driver(PersonNode)、Passenger 1 (PersonNode)、Passenger 2 (PersonNode)、Jack (EquipmentNode)、Tire Iron (EquipmentNode)、SpareTire (SupplyNode)}

在我们现有的 win32 树中,当我们添加 Truck 2 节点时,我们手动循环遍历子节点并添加虚拟节点(根据需要)和子节点,以根据子列表中的节点类型和可能的属性创建树在子节点上 - PersonNode 上有一个标志来指示它是乘客还是机组人员,所以我们知道添加它应该属于哪个父节点。

我正在努力研究如何在树上的 MVVM 方法中表示这将允许我们保留上述虚拟节点。

任何帮助将不胜感激!

0 投票
1 回答
676 浏览

wpf - HierarchicalDataTemplate 用于非常复杂的布局

我正在制作一个草药数据库程序,但在为我的主要数据类设置 HierarchicalDataTemplates 时遇到了麻烦。

想要的树形布局:

  • 词汇表
    • 类别1
      • 字母(减少整体列表大小)
        • 入口
          • 注1
          • 笔记2
  • 草药

    • 植物名称

      • 按字母顺序
        • 字母(减少整体列表大小)
          • 入口
      • 按家庭
        • 家庭
          • 入口
    • 通用名称

      • 字母(减少整体列表大小)
        • 入口

注意:所有条目都有注释 注意2:字母是用于排序的字母

前任:

  • 一种
    • 苹果
  • b
    • 公共汽车

主类:

词汇表条目:

草药入口:

编辑:感谢@AngelWPF 的链接,我得到了显示我的对象的树。但是,目前树看起来像这样:

  • 草药
    • 通用名称
      • 条目中的 CommonName 项
      • 条目中的另一个 CommonName 项目
    • 通用名称
      • 条目中的 CommonName 项
      • 条目中的另一个 CommonName 项目

如何进行此更改以匹配我的层次结构?

XAML:

0 投票
2 回答
5743 浏览

wpf - 如何使用 HierarchicalDataTemplate 显示 XML 元素和属性?

我想在 TreeView 中显示任意 XML,带有展开和折叠节点,同时显示元素名称和属性集及其值。我想我可以用 HierarchicalDataTemplate 做到这一点。

我已经看到了使用 HierarchicalDataTemplate 来显示任意 XML元素和文本节点的提示,如下所示:

效果很好。它显示每个元素的元素名称和文本。但是我的 XML 使用属性来携带信息。模式很复杂,我没有正式的定义,所以现在我将其视为任意 XML。

最简单的文档如下所示:

使用上面的 HierarchicalDataTemplate 定义,我得到了这个显示:

在此处输入图像描述

不是我想要的。对于每个节点,我想同时显示元素名称属性集及其值。

我试过这个:

...这让我有点接近,但 Value="{Binding Path=Attributes}"结果是在 TreeView 中显示“(集合)”。

在此处输入图像描述

除了元素名称之外,我如何才能简单地显示所有实际的属性名称和值?