WPF界面开发中怎么将不同集合中的项目显示为同一父节点子项

WPF界面开发中怎么将不同集合中的项目显示为同一父节点子项,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

系统背景

  • 平台: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。发现所有示例仅提及一种可能的子类型,至于显示,所有的类都实现一个接口,该接口映射到类的相应属性。

public interface ITreeBaseItem
{
string ObjectType { get; }
string Element { get; }
string Title { get; }
string Detail1 { get; }
string Detail2 { get; }
string Detail3 { get; }
}

该摘录摘自这里

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来实现这种方法。

关于WPF界面开发中怎么将不同集合中的项目显示为同一父节点子项问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。