从父级wpf访问子控件事件

本文关键字:控件 事件 访问 wpf | 更新日期: 2023-09-27 18:24:59

我有一个名为myControl的用户控件。我已将myControl中另一个名为dialog的用户控件呈现为<uc:dialog x:Name="dialog">。我在对话框用户控件中有一个名为myButton的按钮。我需要从父级获取myButton的lostfocus事件,即后面的myControl代码。我怎么能拿到?哪种方法最好?

    var myButton= dialog.FindName("myButton") as Button;
    if (myButton!= null)
    {
        myButton.LostFocus += myButton;
    }

我试过了。但它不起作用。为什么?

从父级wpf访问子控件事件

您可以在UserControl中定义这样的事件。然后只需注册此活动。

public event EventHandler ButtonLostFocusEvent;
private void Button_LostFocus(object sender, RoutedEventArgs e)
{
    EventHandler testEvent = this.ButtonLostFocusEvent;
    // Check for no subscribers
    if (testEvent == null)
        return;
    testEvent(sender, e);
}