您好,我正在使用接口 IFooNode,它是树的一部分。
我想使用 HierarchicalDataTemplate 在 TreeView 中显示这棵树。
然而,由于接口的原因,这不起作用。
我看到两种方法,但都不是我所说的“好”
找出真正实现 IFooNode 的类型(我们称之为 FooNode...),然后找到定义 FooNode 的程序集,添加对该程序集的引用并为 FooNode 创建一个 HierarchicalDataTemplate(希望实现类永远不会改变...)
编写一个包装 IFooNode 的类 MyCoolIFooNodeWrapperForWpf,不绑定到树,而是从树根填充 MyCoolIFooNodeWrapperForWpf 列表,并为 MyCoolIFooNodeWrapperForWpf 创建一个 HierarchicalDataTemplate。
我可以以某种方式always应用 HierarchicalDataTemplate,无论数据是什么类型(我认为这将是两害相权取其轻...)
还有其他想法吗?
您可以使用 ItemTemplateSelector。在选择器的代码中,您可以检查数据对象实现的接口,并为此项目选择适当的 DataTemplate/HeirarchicalDataTemplate。
选择器既可以应用于容器本身 (ItemsControl.ItemTemplateSelector),也可以应用于分层数据模板 (HeirarchicalDataTemplate.ItemTemplateSelector)。
我认为这是两害相权取其轻。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)