我目前正在工作的项目是wpf,而且我是wpf的新手。在我的项目中,我想搜索树视图,当匹配发生时,我需要突出显示该元素。我这样工作,我没有设置节点的背景颜色。
foreach (object item in treeView1.Items)
{
cls.Node n=(cls.Node)item;
n.IsSelected = true;
}
任何人都可以帮助我。上面的代码是示例代码。
答案 0 :(得分:2)
您必须让包装器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
实际上是您的自定义类)。