我们说我有一个带有两个标签的表单,每个标签中都有5个标签。我希望能够在搜索框中输入我想要的标签,然后将显示该标签并突出显示标签。
根据我的阅读,我需要使用可视树并搜索孩子,我以前从未这样做过。我想知道是否有更简单的解决方案?
注意:我将始终搜索标签文本属性
答案 0 :(得分:1)
如果将每个网格命名为TabItem的第一个子节点,则可以引用网格的子节点。然后,您可以通过使用某种Tag标记来调用并选择正确的TabItem,以识别TabControl中父TabItem的位置。如果网格不是TabItem的DIRECT子节点,则必须调用它的子节点等等。
XAML:
<TabControl x:Name="tbControl">
<TabItem>
<Grid x:Name= "firstTabGrid" Tag="0">
<Label Content="label one"/>
<Label Content="label two"/>
</Grid>
</TabItem>
<TabItem>
...
</TabItem>
C#:
foreach (Label l in firstTabGrid.Children)
{
if (l.Content.ToString() == "matching string here")
{
tbControl.SelectedIndex = Convert.ToInt32(firstTabGrid.Tag.ToString());
l.Background = Brushes.Yellow;
}
}