【问题标题】:Close actual Window and open a new Window from ViewModel关闭实际窗口并从 ViewModel 打开一个新窗口
【发布时间】:2016-10-22 08:51:41
【问题描述】:

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

它工作正常,因为第一个窗口代表 MainWindow。

问题: 我如何在其他窗口中实现这一点?

【问题讨论】:

  • 不应在 ViewModel 中使用特定于 UI 的逻辑。将这些代码放入 Click 事件中。放入 ViewModel 会破坏 viewmodel 的目的

标签: c# wpf mvvm


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    相关资源
    最近更新 更多