使用Prism Region Manager关闭对话框

时间:2015-07-07 23:36:16

标签: wpf mvvm prism

我有一个WPF / PRISM应用程序,我在其中使用以下代码打开一个窗口:

RegionManager.RequestBlockingDialogNavigate(MyViewModel);

如何在不使用代码的情况下关闭该窗口?

感谢。

2 个答案:

答案 0 :(得分:0)

我可以通过其他方式实现目标。基本上我只是将整个窗口作为CloseCommand的参数传递,并从ViewModel中关闭它。

offset = m(lon_0, lat_0)
df['x'], df['y'] = (df.x + offset[0], df.y + offset[1]) # where df is a Pandas dataframe with my data

在View Model中,我刚刚这样做了:

<Button Content="Close" Command="{Binding CloseCommand}" CommandParameter="{Binding ElementName=MyWindow}" />

我认为PRISM中有一些东西可以做到。到目前为止我还没找到任何东西。

由于

答案 1 :(得分:0)

你也可以试试这个,

<Button Content="Close" Command="{Binding CloseCommand}"  />

public DelegateCommand CloseCommand { get;  private set;} 
public MyViewModel()
{
    CloseCommand = new DelegateCommand(()=>
    {
          foreach (Window window in Application.Current.Windows)
                {
                    if (window is DialogView)//your window type come here
                    {
                        window.Close();
                    }                  }                                                                                        

    });
}

如果窗口显示为.ShowDialog();

,则无效

或代替foreach,这是对话框视图的窗口

Application.Current.Windows.OfType<DialogView>().FirstOrDefault().Close();