代码之家  ›  专栏  ›  技术社区  ›  Benny

WinForm中的TreeView节点映射

  •  3
  • Benny  · 技术社区  · 15 年前

    我有一个TreeView控件,它的子节点映射到一个列表中的元素,当列表中的元素状态改变时,我需要更新相应的TreeView节点,同时,当用户选择TreeNode时,我可以映射到列表中的元素,记录映射的最佳方法是什么?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Ash    15 年前

    如果是标准的WinForms树视图,则可以使用 Tag property 在每个节点上存储对相应列表项的引用。

    如果还使用ListView,则每个ListViewItem还具有 Tag property 它可以用来参考相应的树型。

    使用treenodes和listviewitems的tag属性,可以轻松实现它们之间的双向同步。

    这些标记属性属于对象类型,因此实际上可以在其中存储所需的任何内容。在您的示例中,当用户编辑ListViewItem时,首先获取标记属性,将其强制转换为TreeNode对象,并根据需要更新TreeNode的状态。

    当用户编辑TreeNode项时,相反的过程也适用。

    [更新]

    在用户界面中,树控件和列表控件似乎在许多屏幕上同时出现。然而,在Windows窗体中,TreeView和ListView(或List)是完全独立的控件,根本不需要一起使用。因此,没有内置的方法使这些控件彼此同步。标记属性和/或事件是在这些控件之间实现同步的最常见方法。

        2
  •  1
  •   Mark Ewer    15 年前

    我不记得这是否特别适用于WinForms中的TreeView控件,但是 http://updatecontrols.net/ 是一个甜蜜的数据绑定设置,使更新以超快速和非常顺利的方式进行。你应该坐高峰。