2017-01-03 9 views
0

2つのタブを持つフォームがあり、各タブに5つのラベルがあるとします。検索ボックスに必要なラベルを入力すると、そのタブが表示され、ラベルが強調表示されます。検索ボックスを使用して2つのタブ内のラベルを検索する

私が読んだことから、ビジュアルツリーを使用して子供を検索する必要があります。簡単な解決策があるかどうか疑問に思っていますか?

注:のTabItemの最初の子である各グリッドに名前を付けるならば、私は常に、ラベルのtextプロパティに

答えて

1

を検索されます、あなたは、グリッドの子を参照することができます。次に、TabControl内の親TabItemの位置を特定するために、ある種のタグインデックスを使用して正しいTabItemを呼び出して選択することができます。グリッドがTabItemの直接的な子でない場合、その子は呼び出される必要があります。

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; 
      } 
     } 
+0

はい、ありがとう:)働いていた - の後、私はラベルがさらにタブダウンしている可能性があり、スクロールビューを持っている一部のタブにはラベルを表示するためにスクロールビューをスクロールする方法はありますか? – JohnChris

関連する問題