2012-04-18 131 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