2013-03-18 21 views
0

我試圖在文檔中過濾TreeListView使用委託,如:Filtering ObjectListView如何過濾objectlistview的TreeListView?

所以它是這樣的:

this.myTree.ModelFilter = new ModelFilter(delegate(object x) { 
    return (((MyTreeNode)x).Type == type); // this code doesn't work, why ? 
}); 

至於結果,myTree應包括所有節點與.Type屬性爲type,在我如果樹中沒有節點,爲什麼???。

但是,如果我將.Type屬性設置爲根節點的類型,那麼它將只是樹中的一個根節點,所以在這種情況下它可以工作。

ETA:爲什麼用上面的代碼過濾不起作用?

回答

2

從你的問題來看,你的TreeListView結構看起來並不完全清楚。但是,它可能與您想過濾尚未提取的子項目(未展開的節點)有關?

從你已經提到的教程鏈接:

過濾和TreeListViews
過濾和TreeListViews在一個可預見的,但也許意想不到的方式進行交互。
篩選僅考慮當前公開的行(即,所有祖先都展開)。
在這些行內,如果篩選過程包含它們或它們的任何後代,那麼這些行將包含在篩選過程中。 (是的,這是遞歸的)。如果底層的子級匹配過濾標準,那麼它的所有祖先都將被視爲匹配,因此將顯示在控件中。
在大多數情況下,這給出了最可預測和有用的視覺效果。