2016-10-22 167 views
1

在我的应用程序的第一个窗口中有一个按钮可打开第二个窗口,在第二个窗口中还有一个按钮可打开第三个窗口。所有按钮命令都在我的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); } } 

因为第一个窗口代表主窗口正常工作。

问题: 我怎样才能实现与其他窗口?

+0

不宜在视图模型使用UI特定的逻辑。将这些代码放入Click事件中。放入ViewModel将打破viewmodel的目的 –

回答

1

试试这个:

void OpenSecondWindowExecute() 
    { 
     this.Close(); 
     SecondWindow sw = new SecondWindow(); 
     sw.WindowStartupLocation = WindowStartupLocation.CenterScreen; 
     sw.Show(); 
    }