加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

wpf – 如何从用户控件启动自定义事件?

发布时间:2020-12-17 00:27:22 所属栏目:大数据 来源:网络整理
导读:我有一个非常有趣的任务,我需要帮助.说明如下: 我有一个用户控件(SomeUserControl),我在一个主窗口中使用.我写的我的应用程序完全在SomeUserControl上,主窗口主持SomeUserControl,没有别的. 现在我有一个关闭按钮(在SomeUserControl中),这应该是关闭主窗口.
我有一个非常有趣的任务,我需要帮助.说明如下:

我有一个用户控件(SomeUserControl),我在一个主窗口中使用.我写的我的应用程序完全在SomeUserControl上,主窗口主持SomeUserControl,没有别的.

现在我有一个关闭按钮(在SomeUserControl中),这应该是关闭主窗口.原因是我不想要SomeUserControl的任何东西来关闭应用程序本身,而是从SomeUserControl触发一个事件,并且Main Window接收它,Main Window将关闭应用程序而不是SomeUserControl.

我该怎么做?我不熟悉创建和处理自定义事件的概念,所以如果有人可以用言语和代码来解释它,我将非常感谢你!

编辑:这是我的代码到目前为止.

(在窗口2中)

公共事件CloseApp作为EventHandler

Private Sub CancelButton_Click(sender As System.Object,e As System.Windows.RoutedEventArgs) Handles CancelButton.Click
    DialogResult = False
    RaiseEvent CloseApp(Me,New EventArgs)
End Sub

(在主窗口中)
Public loginPage As New LoginPage

Public Sub New()
    InitializeComponent()
    AddHandler loginPage.CloseApp,AddressOf Me.ShutDownJobChangeWindow
End Sub

Private Sub ShutDownJobChangeWindow(ByVal sender As Object,ByVal e As EventArgs)
    Application.Current.Shutdown()
End Sub

目标:当我在窗口2中单击取消时,我想关闭应用程序,但是我不想这样做,使得窗口2关闭本身,而是通过向主窗口发送一些通知,并且主窗口关闭应用程序.

如果在用户控制类的“代码后面”中实现了用户控制的逻辑,请执行以下操作.

我假设XAML文件有一个点击事件的按钮:

<Button Click="Button_Click">Close App</Button>

然后,在您的SomeUserControl类的代码中,执行以下操作:

public partial class SomeUserControl : UserControl
{
    public event EventHandler CloseApp;

    ...

    private void Button_Click( object sender,RoutedEventArgs e )
    {
        if( CloseApp != null ) {
            CloseApp( this,new EventArgs( ) );
        }
    }
}

在主窗口中,聆听事件:

...

someUserCtrl.CloseApp += new EventHandler( MyFn );

private void MyFn( object sender,object EventArgs e ) {
    ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读