开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 5600|回复: 0

如何将不同集合中的项目显示为同一父节点子项

[复制链接]

0

精华

8

贡献

1768

赞扬

特约版主

帖子
583
软币
4524
在线时间
275 小时
注册时间
2019-2-21
发表于 2020-9-2 09:40:01 | 显示全部楼层 |阅读模式
通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。
系统背景
  • 平台:WPF
  • 产品:DXTreeList for WPF
  • 框架:.NET Framework Build 20.1.4
  • 操作系统:Windows 10 x64
  • IDE:Microsoft Visual Studio 2019
遇到的问题
在使用TreeListView实现解决方案显示结构化数据时,使用IChildNodesSelector来构建树。工作正常时有一个模型,每个级别可以有多个SubType,ClassA具有成员List ClassB和List ClassC。发现所有示例仅提及一种可能的子类型,至于显示,所有的类都实现一个接口,该接口映射到类的相应属性。
[C#] 纯文本查看 复制代码
public interface ITreeBaseItem
{
string ObjectType { get; }
string Element { get; }
string Title { get; }
string Detail1 { get; }
string Detail2 { get; }
string Detail3 { get; }
}

该摘录摘自这里
[C#] 纯文本查看 复制代码
public class CustomChildrenSelector : IChildNodesSelector {
public IEnumerable SelectChildren(object item) {
if (item is ProjectStage)
return ((ProjectStage)item).Tasks;
else if (item is ProjectObject)
return ((ProjectObject)item).Stages;
return null;
}
}

问题是:如果ProjectStage类不仅具有任务,还具有另一个子类型,即目标,该怎么办? 可以使用IChildNodesSelector完成此操作,还是应该继续执行其他策略?
解决方案:
从技术上讲,可以将这些集合合并到选择器中并返回结果。可参考下面演示的方法:How to: Implement Hierarchical Data Binding via Child Nodes Selector。还必须禁用不同类型缺少属性的编辑,使用CellTemplateSelector来实现这种方法。

DevExpress技术交流群2:775869749      欢迎一起进群讨论

回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-28 02:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表