我有在看在文件夾列表更改某些文件,其中包括孩子(如果一個文件夾的注視下,它會看所有的孩子)中的程序列表。我想增加從這個過程中排除某些孩子的能力,但我不確定如何最好地處理它或存儲這個「規則」。例如,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