我有在看在文件夹列表更改某些文件,其中包括孩子(如果一个文件夹的注视下,它会看所有的孩子)中的程序列表。我想增加从这个过程中排除某些孩子的能力,但我不确定如何最好地处理它或存储这个“规则”。例如,here'a一棵树,我可能看:管理监视的文件夹/文件和排除,包括儿童
Root
Folder1
SubFolder1
File1
File2
Folder2
File3
File4
我想允许用户选择一个文件夹(如“根”),它会自动选择所有的孩子。如果他们取消选中一个文件夹(如Folder1),我想取消选中该文件夹中的所有孩子,但是如果他们检查了孩子的孩子(如File1),我想检查它的所有孩子(或者,在这种情况下,只是看File1,因为它没有孩子)。
我将这些数据存储为用户已采取某种操作(+或 - )的节点列表,然后沿着文件夹列表逐级向下走,直到一次到达用户采取不同操作的节点,然后继续进入文件夹/文件,检查每一步,看看用户是否对该节点采取了特定的操作,然后将其传播到所有子节点。如果一个新文件夹/文件出现在监视节点下,我想开始观看它,但是如果它出现在被忽略的节点下,我会忽略它。
难道我只是存储每个“付诸行动”文件夹/文件,以及动作(手表/忽略),用户花了,然后每一次重建整个树?有没有更有效的方法来做到这一点,我不想描绘?
我很高兴向大家澄清,如果我的电流I如何想象这种不清楚的解释。另外,我正在使用.NET,但我对一般过程更感兴趣 - 我将解决实现问题。
这就是我最终做的 - 树视图有一组对应于物理磁盘的顶级节点,并且该进程将每个节点序列化为XML,然后将其保存到文件中。然后,我编写了一个过程,接受树视图中的treenode(磁盘的图片)和刚刚反序列化的treenode(上次的设置),并将复选框从保存的节点应用到树视图控件。感谢您指点我正确的方向! – SqlRyan 2010-06-23 21:54:45