2016-10-22 168 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(); 
    }