从主窗口触发页面中的事件
本文关键字:事件 窗口 | 更新日期: 2023-09-27 18:05:36
我有一个承载页面的窗口。当用户在关闭主窗口时单击取消时,我想在页面上触发一个事件。目前,我正在努力找出如何从窗口中触发页面上的事件。这是页面上的事件;
public void OnChangeUserEvent()
{
var _employeeSelectionWindow = new EmployeeSelectionWindow();
_employeeSelectionWindow.ReturnEmployeeDetails += LoadSelectedEmployeeAsLoggedInUser;
_employeeSelectionWindow.ShowDialog();
}
这里是我想要触发它的时候(这个方法是在一个窗口中,托管页面);
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);
当你创建新的LoginPage实例时,你可以将主窗口的引用传递给它
var loginPage = new LoginPage(this); //this indicate reference of main window.
在LoginPage的构造函数中,您可以添加事件处理程序
public LoginPage(MainWindowClass mainWin)
{
mainWin.UserChangeEvent += LocalEventHanlderMethod;
}
当你从主窗口的onclosing事件引发事件时,这个应该被调用。