2014-11-01 40 views
0

我目前工作的項目是wpf,我更新wpf。在我的項目中,我想搜索樹視圖,當匹配發生時,我需要突出顯示該元素。我這樣工作,我沒有設置節點的背景顏色。通過後面的代碼在wpf中設置樹視圖的底色顏色

foreach (object item in treeView1.Items) 
{ 
    cls.Node n=(cls.Node)item; 
    n.IsSelected = true;    
} 


任何人都可以幫助我在此。上面的代碼是一個示例代碼。

回答

1

你必須得到包裝TreeViewItem來設置背景。由於TreeView沒有在其ItemsPanelTemplate使用VirtualizingStackPanel,所以我們可以放心地使用ItemContainerGenerator獲得一些物品的TreeViewItem

foreach (object item in treeView1.Items) { 
    //cls.Node n=(cls.Node)item; 
    //n.IsSelected = true;    
    var tvItem = treeView1.ItemContainerGenerator.ContainerFromItem(item) 
       as TreeViewItem; 
    if(tvItem != null) tvItem.Background = Brushes.Blue;//just an example 
} 

我不知道如果原來的代碼(以上評論)是你的企圖與否,所以只需要取消註釋(cls.Node實際上是您的自定義類)。

+0

我試過了,但我得到tvitem作爲null – Sivajith 2014-11-01 09:22:40

+0

@Sivajith我忘了提及代碼應該運行時,你的窗口***已經被加載***。因此,請嘗試將其放置在某個'Loaded'事件處理程序中,或者只需確保在運行代碼之前仍然顯示您的窗口。 – 2014-11-01 10:31:21

+0

不客氣:) – 2014-11-01 10:46:36

相關問題