关闭实际窗口并从ViewModel打开一个新窗口
问题描述:
在我的应用程序的第一个窗口中有一个按钮可打开第二个窗口,在第二个窗口中还有一个按钮可打开第三个窗口。所有按钮命令都在我的ViewModel中实现。 打开新窗口之前,必须关闭当前窗口。 从第一到第二个窗口,我用下面的代码:关闭实际窗口并从ViewModel打开一个新窗口
void OpenSecondWindowExecute()
{
System.Windows.Application.Current.MainWindow.Hide();
SecondWindow sw = new SecondWindow();
sw.WindowStartupLocation = WindowStartupLocation.CenterScreen;
sw.Show();
}
bool CanOpenSecondWindowExecute()
{
return true;
}
public ICommand OpenSecondWindow { get { return new RelayCommand(OpenSecondWindowExecute, CanOpenSecondWindowExecute); } }
因为第一个窗口代表主窗口正常工作。
问题: 我怎样才能实现与其他窗口?
答
试试这个:
void OpenSecondWindowExecute()
{
this.Close();
SecondWindow sw = new SecondWindow();
sw.WindowStartupLocation = WindowStartupLocation.CenterScreen;
sw.Show();
}
不宜在视图模型使用UI特定的逻辑。将这些代码放入Click事件中。放入ViewModel将打破viewmodel的目的 –