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界面开发中怎么将不同集合中的项目显示为同一父节点子项问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。