Winforms-将三元组耦合到数据结构的设计模式
本文关键字:数据结构 设计模式 耦合 三元组 Winforms- | 更新日期: 2023-09-27 18:09:17
我目前有一个显示文件系统树的数据结构,它基本上是一个具有类似类型对象的数组列表的对象。我想在树视图中显示这个,并且需要在树视图节点展开,折叠,选择等时运行一些代码。
我的问题-是否有一种设计模式,或数据结构和树视图之间的耦合方法,不需要我搜索整个DS树为每次用户选择的节点?
目前,我正在搜索的数据结构具有相同的文本和标签属性的节点作为所选节点的每次相关的树视图事件火灾。我遇到过这样的情况,如果节点不是叶节点,我就必须去研究它的父节点,我担心大型树
的性能请记住,数据结构已经继承了一个对象,所以我不能简单地扩展treenode类。
任何帮助都非常感谢
您仍然可以扩展TreeNode,但使用组合添加一个额外的属性来映射到节点所代表的对象。
您还可以将子节点的逻辑移动到此树节点,而不是将其放在
之外。public class DomainClass { /*...*/ }
public class DomainTreeNode: TreeNode
{
public DomainClass Element { get; private set; }
public DomainTreeNode(DomainClass element): base(element.Name)
{
Element = element;
/* iterate on element's children and add them to the node's
Childs collection ...*/
}
}