我有一个托管页面的窗口。当用户在关闭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);
到目前为止,对我来说没有任何作用。
答案 0 :(得分:0)
当您创建新的LoginPage实例时,您可以将主窗口的引用传递给它
var loginPage = new LoginPage(this); //this indicate reference of main window.
在LoginPage的构造函数中,您可以将事件处理程序添加为
public LoginPage(MainWindowClass mainWin)
{
mainWin.UserChangeEvent += LocalEventHanlderMethod;
}
当你从主窗口的关闭事件中提出事件时,应该调用它。