私はこの問題の答えを見つけようとしましたが、すべての投稿で、子供を再帰的に見つけるための答えがありますが、隠された子供や倒れた子供には効果がありません。
また、すべての投稿で誰かがこれが可能かどうか尋ねましたが、誰も答えていないので、私はこれが不可能だと思い始めています
誰かがこれを行う方法を持っているなら、私は永遠に感謝します。
私の関数は次のようになります。
public static DependencyObject FindLogicalDescendentByName(this DependencyObject source, string name)
{
DependencyObject result = null;
IEnumerable children = LogicalTreeHelper.GetChildren(source);
foreach (var child in children)
{
if (child is DependencyObject)
{
if (child is FrameworkElement)
{
if ((child as FrameworkElement).Name.Equals(name))
result = (DependencyObject)child;
else
result = (child as DependencyObject).FindLogicalDescendentByName(name);
}
else
{
result = (child as DependencyObject).FindLogicalDescendentByName(name);
}
if (result != null)
return result;
}
}
return result;
}
-編集済みだから、私の問題は、アイテムが作成される前にアイテムを見つけようとしていたことだと気づきました。
xamlのプロパティにバインドして、指定された名前のアイテムを検索しましたが、その時点でアイテムは作成されていませんでした。xamlでアイテムを並べ替えると、機能し、アイテムが見つかります。 .. doh!