2012-04-18 132 views
1

我目前正在從後面的代碼中將TreeView項目的IsSelected設置爲true,不幸的是,視覺狀態不會改變。Silverlight TreeviewItem IsSelected似乎不能正常工作

我們有一個選定狀態的樣式,但當IsSelected從代碼後面設置時,它不會被觸發。

TreeViewItem item = CurrentTree.Items.Where(i => (Guid)(i as TreeViewItem).DataContext == objectId).FirstOrDefault() as TreeViewItem; 

       if (item != null) { 

        item.IsSelected = true; 

        CurrentTree.UpdateLayout(); 

        OnTreeSelection(null, null); 

       } 
+1

你應該屬性的綁定路徑發佈一些代碼,那麼它會更容易幫助。 – Vinicius 2012-04-18 11:30:47

+0

如果以這種方式取消選擇項目,則會發生同樣的問題。它似乎取消選擇,但在它上面的選擇不再選擇它。 – EvAlex 2012-09-27 10:34:54

回答

0

我以前有過類似的問題,我意識到,你必須確保你設置的「SelectedValuePath」是決定你選擇的值

+0

謝謝,尼爾快速問題,我目前手動添加樹視圖項目到我的樹不是對象。我應該選擇什麼值路徑? – arcbound08 2012-04-19 03:45:24

+0

@ arcbound08 - 通常情況下,我會先檢查一下,但我現在正在上班。我猜測,因爲這些項目應該是TreeViewItems,所以您可以使用TreeViewItem的屬性,例如「Header」或「Name」作爲選定的值路徑。我不確定這件事,但我會試一試。 – 2012-04-20 11:50:10

+0

@ arcbound08 - 它工作還是你找到了解決方案(我想確認在遇到這種情況:)) – 2012-04-22 11:08:51