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

管理监视的文件夹/文件和排除项(包括子项)的列表

  •  0
  • SqlRyan  · 技术社区  · 15 年前

    Root
      Folder1
        SubFolder1
          File1
          File2
      Folder2
        File3
        File4
    

    我想允许用户选择一个文件夹(如“Root”),它会自动选择所有子文件夹。如果他们取消选中一个文件夹(如Folder1),我想取消选中该文件夹的所有子文件夹,但是如果他们选中一个子文件夹(如File1),我想选中它的所有子文件夹(或者,在本例中,只看File1,因为它没有子文件夹)。

    我设想将这些数据存储为一个节点列表,用户在其中执行了某种操作(无论是+还是-),然后逐个遍历文件夹列表,直到到达用户执行了不同操作的节点,然后继续进一步遍历文件夹/文件,在每个步骤检查用户是否对该节点采取了特定的操作,然后将其传播到所有子节点。如果一个新的文件夹/文件出现在关注的节点下,我想开始关注它,但如果它出现在被忽略的节点下,我会忽略它。

    我是否只存储每个“actioned”文件夹/文件,以及用户执行的操作(watch/ignore),然后每次都重建整个树?有没有比我想象的更有效的方法?

    我很高兴澄清一下,如果我目前对如何描述这一点的解释不清楚的话。另外,我使用的是.NET,但我更感兴趣的是一般的过程—我会解决实现问题。

    1 回复  |  直到 10 年前
        1
  •  1
  •   regex    15 年前

    TreeView 班级。根据我的经验,您需要在其中添加一些逻辑,以便在选择节点后更新父节点和子节点,但这可以通过将处理程序附加到 TreeView events

    另一方面,TreeView类没有标记为可序列化。但是,您可以序列化TreeView的根TreeNode。因此,您可以通过二进制序列化、XML序列化或您选择的任何其他方法保存所选选项。

    推荐文章