0
私はページをホストするウィンドウを持っています。私はMainWindowを閉じるときにユーザーがキャンセルをクリックすると、ページ上でイベントを発生させたい。現時点では、ウィンドウからページ上でイベントを発生させる方法を練習するのに苦労しています。ここでは、ページ上のイベントです。メインイベントからページ内のイベントを焼きます。
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の新しいインスタンスを作成する場合
NavigationServiceにページを追加する前に、ウィンドウの変数としてページのインスタンスを保存することはできますか?(ウィンドウのコードビハインドでウィンドウにページを追加する場合)表示されている同じページの参照を保存すると、パブリックメソッドをページとして呼び出すことができます。 –