我有一个WPF / PRISM应用程序,我在其中使用以下代码打开一个窗口:
RegionManager.RequestBlockingDialogNavigate(MyViewModel);
如何在不使用代码的情况下关闭该窗口?
感谢。
答案 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();