主窗口页面中的火灾事件

时间:2016-09-05 09:06:14

标签: c# wpf events

我有一个托管页面的窗口。当用户在关闭MainWindow时单击取消时,我想在页面上触发事件。目前,我正在努力研究如何在Page From Window上触发事件。这是Page;

上的事件
public void OnChangeUserEvent()
{
    var _employeeSelectionWindow = new EmployeeSelectionWindow();
    _employeeSelectionWindow.ReturnEmployeeDetails += LoadSelectedEmployeeAsLoggedInUser;
    _employeeSelectionWindow.ShowDialog();
}

这是我想要解雇的时候(这个方法在一个Window中,托管页面);

private void OnWindowClosed(object sender, System.ComponentModel.CancelEventArgs e)
{
    var result = MessageBox.Show(@"Are you sure you want to exit the database?" + Environment.NewLine + "Click cancel to change user.",
                                "", MessageBoxButton.YesNoCancel);
    if (result == MessageBoxResult.Yes)
    {
        Environment.Exit(0);
    }
    else if (result == MessageBoxResult.Cancel)
    {
        //Fire the event on the page here!
        e.Cancel = true;
    }
    else
    {
        e.Cancel = true;
    }
}

我尝试过使用类似的东西;

((LoginPage)e.Content).UserChangeEvent+= new EventHandler(MainWindow_NewRecordSaved);
到目前为止,对我来说没有任何作用。

1 个答案:

答案 0 :(得分:0)

当您创建新的LoginPage实例时,您可以将主窗口的引用传递给它

var loginPage = new LoginPage(this); //this indicate reference of main window.

在LoginPage的构造函数中,您可以将事件处理程序添加为

 public LoginPage(MainWindowClass mainWin)
{
   mainWin.UserChangeEvent += LocalEventHanlderMethod;
}

当你从主窗口的关闭事件中提出事件时,应该调用它。