2011-01-31 22 views
2

私はWPFの新機能で、これを行う方法がわかりません。私は、タブコントロール上のタブ項目にテキストボックスを持っています。プログラムで(C#)どのタブ項目がこのテキストボックスの親であるかを判断するにはどうすればよいですか?また、どのタブコントロールがタブアイテムの親であるかを確認したいと思います。WPF - コントロールのタブの検索方法

ありがとうございました。

答えて

8

TabItem.Parentは、TabItemの論理的な親要素を提供します。これは関連するTabControlになります。同じアプローチをTabItemで任意のコントロールに使用できます。

ツリー内の項目が深く、深さが不明な場合は、再帰的にアプローチする必要があります。

1

私はWPFでも初心者ですが、サイクル検索はどうですか?たとえば :

TextBox TB = new TextBox(); 
TabControl MyTabControl = new TabControl(); 
// ... 
foreach (TabItem ti in MyTabControl.Items) 
    if (TB.Parent == ti) 
    { 
     // textbox is here! 
     MessageBox.Show(ti.ToString()); 
     break; 
    } 
2

あなたは、WPFのコントロールの階層を歩いてFrameworkElement.Parentを使用することができます。これは、あなたが(再帰的に)あなたがTabItemを見つけてそこからTabControlまで歩くまで歩いていくはずです。ここで

0

は、親コントロールを見つけるための一般的な方法です。How can I find WPF controls by name or type?

あなたはこのようにそれを呼び出すことができます。

TabItem owner = UIHelper.FindVisualParent<TabItem>(myTextBox); 
関連する問題