Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PRISM 5:IConfirmNavigationRequest方法多次调用_C#_Wpf_Prism - Fatal编程技术网

C# PRISM 5:IConfirmNavigationRequest方法多次调用

C# PRISM 5:IConfirmNavigationRequest方法多次调用,c#,wpf,prism,C#,Wpf,Prism,我正在使用PRISM和Unity扩展 WPF按钮命令调用以下代码并显示对话框: private void LaunchDialog() { Bootstrapper bootstrapper = new Bootstrapper(); bootstrapper.Run(); bootstrapper.MyShell.Owner = Application.Current.MainWindow; bootstrapper.My

我正在使用
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
,导航方法在第一次启动时也只调用一次。

我刚刚添加了bootstrapper.Container.RemoveAllExtensions()以消除这种行为

private void LaunchDialog() 
{
        Bootstrapper bootstrapper = new  Bootstrapper();
        bootstrapper.Run();
        bootstrapper.MyShell.Owner = Application.Current.MainWindow;
        bootstrapper.MyShell.ShowDialog();
        bootstrapper.Container.RemoveAllExtensions();
} 

我认为您的dialog实例没有得到正确处理。检查一些事件或任何静态引用。我是否正确理解,您创建了一个引导程序,并在已经运行的应用程序中单击按钮调用的方法中运行它?那么,这是一个完全错误的方法。