我正在使用PRISM
和Unity扩展程序。
WPF按钮命令调用以下代码并显示对话框:
private void LaunchDialog()
{
Bootstrapper bootstrapper = new Bootstrapper();
bootstrapper.Run();
bootstrapper.MyShell.Owner = Application.Current.MainWindow;
bootstrapper.MyShell.ShowDialog();
}
当我第一次点击LaunchDialog
时,PRISM
导航方法OnNavigatedFrom
和OnNavigatedTo
会拨打一次。我关闭了对话框,
当我下次点击LaunchDialog
时,PRISM
导航方法OnNavigatedFrom
和OnNavigatedTo
会被调用两次。我关闭了对话框,
如果我第三次点击LaunchDialog
,PRISM
导航方法OnNavigatedFrom
和OnNavigatedTo
将被调用三次。我关闭对话框,
如何摆脱这种行为?因此,即使用户多次点击LaunchDialog
,导航方法也会在首次启动时调用一次。
答案 0 :(得分:0)
我刚刚添加了bootstrapper.Container.RemoveAllExtensions()来摆脱这种行为。
private void LaunchDialog()
{
Bootstrapper bootstrapper = new Bootstrapper();
bootstrapper.Run();
bootstrapper.MyShell.Owner = Application.Current.MainWindow;
bootstrapper.MyShell.ShowDialog();
bootstrapper.Container.RemoveAllExtensions();
}