问题标签 [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 投票
2 回答
1475 浏览

wpf - 使用 wpf HierarchicalDataTemplate 接口的任何方式

嗨,我正在使用接口 IFooNode,它是树的一部分。
我想使用 HierarchicalDataTemplate 在 TreeView 中显示这棵树。但是,由于界面原因,这不起作用。我看到两种方法,我都不会称之为“好”

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

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

无论数据是什么类型,我都可以以某种方式始终应用 HierarchicalDataTemplate(我认为这将是较小的邪恶......)

还有其他想法吗?

0 投票
1 回答
4944 浏览

wpf - 如何为从 HierarchicalDataTemplate 生成的 TreeViewItem 指定哪个 TreeViewItem 样式/模板?

情况:

我有两个在 TreeView 中表示的类。DiskSpec 和 DiskSet。DiskSpec 可以单独存在,也可以是 DiskSet 的子项。我正在启用 DragDrop 功能,以便用户可以将 DiskSpec 从 DiskSpec 节点拖到 DiskSet 上,以将其添加到该 DiskSet 中。现在一切都在工作,除了一件事。我的 DragDropHelper 类需要在 ItemsPresenter(或相关类)中指定该控件是拖动源还是放置目标。

我的 TreeView 设置如下树视图

问题:

所以我真的需要两个 TreeViewItem 样式。一次用于 DiskSets(它指定将呈现 DiskSpecs 的 ItemsPresenter 是一个 DropTarget),另一个用于指定它的 ItemsPresenter 是一个 DragSource。

不幸的是,我没有看到任何从 HierarchicalDataTemplate 对象设置 TreeViewItem 样式或模板的方法,并且似乎没有办法指定此 ItemTemplate 仅用于特定的 DataType。

有什么想法吗?还是我错过了什么?

在下面找到我的 XAML 中的一些示例。

默认树视图项

有关 DragDropHelper 属性设置的示例,请参阅 ItemsPresenter 部分。

树视图结构

Bea Stolnitz 的博客文章:如何在数据绑定的 ItemsControls 之间拖放项目?

0 投票
1 回答
1908 浏览

c# - WPF 树视图数据模板

假设我有这样的事情:

如何为这种类型实现数据模板?目前我有:

但这不显示任何文件夹内容。似乎第二个模板的DataType应该是local:TopicFolder,但是WPF不允许这样做。

有什么建议么?

UPD:TreeView 以这种方式绑定到 ObservableCollection<TopicFolder> :

PS:这绝对不是私人/公共/财产问题。对于已发布的字段,我有相应的公共属性。输出中没有绑定错误,只是没有显示任何 FolderContent 项。

0 投票
3 回答
17308 浏览

c# - WPF TreeView-添加/删除节点后如何刷新树?

我参考这篇文章:

WPF TreeView HierarchicalDataTemplate - 绑定到具有多个子集合的对象

并修改树结构,如:

在 Entry.cs 中:

在 Source.cs 中:

在 XAML 文件中:

在 UserControl.cs 中:

当我在特定节点“Entry”上单击右键以在 Entry 下添加新节点“Source”(调用“Add”方法)时,我在 Entry 下成功添加了一个新的“Source”对象,但我看不到这个新节点在树视图上。添加/删除节点时如何刷新树视图?

0 投票
1 回答
466 浏览

wpf - 带有 HierarchicalDataTemplate 的 WPF 本地化 TreeView

事情是这样的:

我有一个简单的 WPF Windows 应用程序,其中包含一个TreeView,它是在HierarchicalDataTemplate一些分层数据的帮助下构建并提供的。

分层数据结构由 FakeRec 类组成,该类包含一个List<FakeRec>. 每个项目都包含一个 Title 字符串属性。所以在我的 XAML 中,我有:

这工作正常,在生成的TreeView我看到每个节点的标题。

现在我想让这整棵树本地化。我在 FakeDirResources.Resx 中有我的资源(在一个单独的程序集中,但这没关系)。如果我这样做:

我的树是空白的(显然,因为在我的FakeDirResources.resx文件中我没有带有 key 的资源Title,但我需要使用Title另一个绑定的,通过资源解决它,然后以某种方式将结果绑定到树。

请注意,如果我只是将 aTextBlock放在窗口上,与树或 无关HierarchicalDataTemplate,我可以将它毫无问题地绑定到资源,如下所示:

这很好用,获取字符串,如果我更改System.Threading.Thread.CurrentThread.CurrentUICulture并刷新我的提供程序,此字符串将更改为新语言。

问题是如何将两者结合起来?我错过了什么?我想一定有一些技巧(根据我对 WPF 的短暂经验,这可能不是一个直截了当的技巧)。

干杯!

阿隆。

0 投票
1 回答
1228 浏览

wpf - TreeView、ObjectDataProvider、HierarchicalDataTemplate、xsd2Code 未显示任何内容

我有一个用 xsd2code 创建的对象层次结构。对象层次结构由 Project 类型的根对象组成,其中包含名为文件夹的 ObservableCollection 文件夹,这是一个递归对象,包含名为文件夹的文件夹的 ObservableCollection 和名为文件的文件我想通过 ObjectDataProvider 将此对象层次结构绑定到 TreeView 并控制通过 HierarchicalDataTemplate 定义显示

ObjectDataProvider 和 DataTemplates 在 App.xaml 中合并的资源中定义,如下所示

TreeView 是这样定义的

全局处理是:我从 Xml 文件(xsd2code 功能)加载对象层次结构。正如我在调试中看到的那样,我的对象层次结构是干净的。然后,我在这样的代码中将对象层次结构绑定到 ObjectDataProvider

好吧,TreeView 中什么也没有出现。我错过了什么?

0 投票
1 回答
148 浏览

.net - HierarchicalDataTemplate 跳过层次结构

我有一个像

Level1
--Level2
----Level3
------Level4

显示在一个HierarchicalDataTemplate. 到目前为止还可以,但我想跳过第 2 级和第 3 级,因此第 4 级直接在第 1 级之下。这可能吗?

0 投票
1 回答
5688 浏览

silverlight - 在 Silverlight 中使用 HierarchicalDataTemplate 设置 TreeView 并与 ItemSource 绑定

我正在尝试构建一个 TreeView 并像这个链接一样设置它:

Silverlight 与 WPF - 带有 HierarchialDataTemplate 的 Treeview

作为对第一个实际答案的评论,提供者说他们是如何解决它的,但他们没有提供代码,我理解他们所说的,但我对此真的很陌生,无法做到正确。我与实体和组具有相同的设置结构。我想知道是否有人可以解释 xaml 最终的样子。我假设他们创建了一个新的节点类,这只是意味着他们创建了一个基本上包含组列表的类。就像是

我只是想深入三个层次:

组 1
- - - - AnotherGroup1
- - - - - - - - entity1
- - - - - - - entity2
- - - - AnotherGroup2
- - - - - - - - entity1
Group2
- - - - Entity1
- - - - Entity2
- - - - AnotherGroup1
- - - - - - - - entity1
- - - - - - - entity2
- - - - AnotherGroup2
- - - - - - - - entity1
依此类推...

就像我说的,我是新手。我也一直在尝试使用本教程:

http://blogs.microsoft.co.il/blogs/davids/archive/2009/06/04/hierarchicaldatatemplate-and-treeview.aspx

但是当我尝试设置另一个 HierarchicalDataTemplate 时,它​​说 ItemTemplate 设置了不止一次。我迷路了。


编辑:在网上找到这个链接,它也有帮助......我想......

http://www.codeproject.com/Articles/36451/Organizing-Heterogeneous-Data-on-a-WPF-TreeView.aspx

0 投票
1 回答
149 浏览

wpf - 应用于字段/属性的 HierarchicalDataTemplate

是否可以将 HierarchicalDataTemplate 应用于属性?我知道我可以将它应用到一个 DataType,它工作得很好,但是如果我有一个通用类,并且唯一可区分的元素是这个类中的一个枚举。那么我可以以某种方式对枚举的值应用不同的 HierarchicalDataTemplate 吗?

问候,

于尔根

0 投票
2 回答
20134 浏览

wpf - ConverterParameter 与多绑定绑定

是否可以将绑定添加到 MultiBinding 中的 ConverterParameter?像这样的东西:

其中 IsFiltered 是应用模板的对象的属性。我总是收到一个 XAML 解析器错误,即 ConverterParameter 中的绑定不正确/允许...或者是否有其他方法可以做到这一点?

问候,

于尔根