私はウィンドウ内にTabControlを持ち、コントロール内にいくつかのタブ項目を持っています。いずれかのタブ項目に含まれるすべてのTextBoxコントロールを検索するにはどうすればよいですか?WPF - 別のオブジェクトに含まれるオブジェクトを見つける方法
ありがとうございました。
私はウィンドウ内にTabControlを持ち、コントロール内にいくつかのタブ項目を持っています。いずれかのタブ項目に含まれるすべてのTextBoxコントロールを検索するにはどうすればよいですか?WPF - 別のオブジェクトに含まれるオブジェクトを見つける方法
ありがとうございました。
thisをお読みください。
this codeを使用して、名前の代わりに一致するタイプに変更することができます。このような
何か:
public static IEnumerable<T> FindDescendants<T>(DependencyObject obj, Predicate<T> condition) where T : DependencyObject
{
List<T> result = new List<T>();
for (var i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
var child = VisualTreeHelper.GetChild(obj, i);
var candidate = child as T;
if (candidate != null)
{
if (condition(candidate))
{
result.Add(candidate);
}
}
foreach (var desc in FindDescendants(child, condition))
{
result.Add(desc);
}
}
return result;
}
そして、メソッドの呼び出しは次のようになりますタブ項目に含まれるすべてのテキストボックスを発見した場合の:
var allTextBoxes = FindDescendants<TextBox>(myTabItem, e => true);
baalazamonの答えは優れています。 –