【问题标题】:Associating Windows Forms TreeView items to actual data将 Windows 窗体 TreeView 项与实际数据相关联
【发布时间】:2009-06-29 00:51:31
【问题描述】:

所以 - 使用 C# 和 Windows 窗体,我有一堆“任务”类。每个班级都有一个List<Task>,这样他们就可以有任意数量的孩子(而且孩子显然可以有更多的孩子......)

这些任务存储在“项目”类中(显然是在List<Task> 中),然后将其序列化为 XML。我有一个函数可以递归完成任务并将它们全部放在 TreeView 中。它可以正常工作。

但问题是 - 如果我从 TreeView 中选择一个任务,我将如何从 Project 中找到它?我想到了某种外键(会是 TreeNode 的键?),但由于我使用 XML 进行序列化,所以这是不可能的。

那么,我该怎么办?

【问题讨论】:

    标签: c# xml winforms treeview xml-serialization


    【解决方案1】:

    我会在每个 TreeNode 的 Tag 成员中引用“Task”对象。然后将标签转换为任务并在处理任何树事件时使用任务变得非常容易。

    【讨论】:

      【解决方案2】:

      您必须给每个任务一个唯一的键(将它们存储在字典中),然后将该 int 值设置为 TreeNode 的标签。

      【讨论】:

        【解决方案3】:

        每个树节点都有FullPath 属性(表示从根到节点的路径),您可以创建字典,并使用您的任务填充它,使用 FullPath 作为键。然后,当节点单击时,您将获取节点 FullPath 并从字典中提取任务。

        【讨论】:

          猜你喜欢
          • 2018-02-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-08
          • 1970-01-01
          • 2012-05-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多