Root
Folder1
SubFolder1
File1
File2
Folder2
File3
File4
我想允许用户选择一个文件夹(如“Root”),它会自动选择所有子文件夹。如果他们取消选中一个文件夹(如Folder1),我想取消选中该文件夹的所有子文件夹,但是如果他们选中一个子文件夹(如File1),我想选中它的所有子文件夹(或者,在本例中,只看File1,因为它没有子文件夹)。
我设想将这些数据存储为一个节点列表,用户在其中执行了某种操作(无论是+还是-),然后逐个遍历文件夹列表,直到到达用户执行了不同操作的节点,然后继续进一步遍历文件夹/文件,在每个步骤检查用户是否对该节点采取了特定的操作,然后将其传播到所有子节点。如果一个新的文件夹/文件出现在关注的节点下,我想开始关注它,但如果它出现在被忽略的节点下,我会忽略它。
我是否只存储每个“actioned”文件夹/文件,以及用户执行的操作(watch/ignore),然后每次都重建整个树?有没有比我想象的更有效的方法?
我很高兴澄清一下,如果我目前对如何描述这一点的解释不清楚的话。另外,我使用的是.NET,但我更感兴趣的是一般的过程—我会解决实现问题。