测试控件是否在GroupBox中
本文关键字:GroupBox 是否 控件 测试 | 更新日期: 2023-09-27 18:28:23
我正试图弄清楚如何编写包含if语句的代码(特别是事件处理程序),无论发送方是否包含在GroupBox中。
例如,假设我有两个GroupBox,每个GroupBox都包含一个网格,然后该网格包含一个文本框。我想为"TextUpdated"编写一个单独的事件处理程序,它可以区分事件来自哪个组框(尽管这对于两个TextBox来说可能听起来过于复杂,但我正在处理的情况是,每个组框中都有许多控件,但事件处理程序是相同的)。
有没有办法让发件人。在(GroupBoxOne)中是否包含布尔?因为我在每个分组框中都有一个网格,所以使用groupbox.PParent(xyz)似乎不起作用,因为它会将网格作为父对象。
希望这是有意义的。。。非常感谢。
您可以使用VisualTreeHelper.GetParent遍历可视化树。
这里有一个很好的实现方法。
代码:
// walk up the visual tree to find object of type T, starting from initial object
public static T FindUpVisualTree<T>(DependencyObject initial) where T : DependencyObject
{
DependencyObject current = initial;
while (current != null && current.GetType() != typeof(T))
{
current = VisualTreeHelper.GetParent(current);
}
return current as T;
}
用法:
Grid gridContainingButton = FindUpVisualTree<Grid>(button01);