我试图找到这个问题的答案, 在每个我发现的文章里, 都有找到孩子的答案, 但没有一个儿童工作 隐藏或崩溃的儿童
也有人问这是否可能, 但没有人回答, 所以我开始觉得这是不可能的。
如果任何人有办法这样做,我将永远感激不尽。
我的功能看起来是这样的:
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;
}
-EDITED So, I realise my problem is that I was trying to find the item before it was created,
我对Xaml中的一个财产有约束力,该财产会爆炸 并找到一个用给定名字的物品, 但该物品不是在那个时候创建的, 如果我在Xaml中重新排列了物品的顺序, 它会起作用, 并且找到... doh!