使用搜索框在两个选项卡中搜索标签

时间:2017-01-03 09:40:33

标签: wpf

我们说我有一个带有两个标签的表单,每个标签中都有5个标签。我希望能够在搜索框中输入我想要的标签,然后将显示该标签并突出显示标签。

根据我的阅读,我需要使用可视树并搜索孩子,我以前从未这样做过。我想知道是否有更简单的解决方案?

注意:我将始终搜索标签文本属性

1 个答案:

答案 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;
            }
        }