在我的主窗口中,我有一个包含文本框的子控件(用户控件)。如何处理主(父)窗口中子控件文本框的 textchange 事件。
请为我提供一些代码示例,因为我是事件路由的新手。
最佳答案
您应该能够从父控件 Hook 事件。但是由于您的父控件没有自己的 TextChanged
事件,您需要使用附加属性语法:
<Window ...
TextBox.TextChanged="ChildTextBoxChanged">
并在您的代码隐藏中:
private void ChildTextBoxChanged(object sender, TextChangedEventArgs args)
{
...
}
您不必专门将
TextBox.TextChanged=
放在 Window
上——只是作为 TextBox
父级的任何控件,即作为 UserControl
父级的任何控件。该事件将依次冒泡到每个父级,一直到顶级 Window
,并且可以在沿途的任何地方进行处理。(请注意,如果有人 Hook 该事件并设置
e.Handled = true
,则该事件不会超过该点。了解您是否有多个级别的处理程序很有用。)
关于wpf - 如何处理父控件中的子事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258821/