C# 显示模式登录对话框

C# 显示模式登录对话框,c#,wpf,mvvm,C#,Wpf,Mvvm,我试图在显示main窗口后显示模式登录对话框。(类似于SSMS) 我知道这不是MVVM方法,但我正在使用MainWindow的Loaded事件,其中我调用以下代码: private void MainWindow_OnLoaded(object sender, RoutedEventArgs e) { ViewModel.ShowLoginDialog(); } 在我调用的ViewModel中: public void ShowLoginDialog() { var vm =

我试图在显示
main窗口后显示模式登录对话框。(类似于SSMS)

我知道这不是MVVM方法,但我正在使用
MainWindow
Loaded
事件,其中我调用以下代码:

private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
    ViewModel.ShowLoginDialog();
}
在我调用的ViewModel中:

public void ShowLoginDialog()
{
    var vm = new LoginControlViewModel();
    var window = new LoginWindow(vm);
    window.ShowDialog();
}
登录对话框会显示出来,但是只有当对话框关闭时,
main窗口才会显示get


如何同时显示
主窗口
和LoginDialog?

您可以在构造函数中调用对话框。如果您使用MVVM,我建议您使用IDialogService。您可以在许多MVVM框架/库中找到它,也可以轻松编写自己的。您的问题也可以通过这种方式解决。

您有自定义DialogService的示例吗?我发现了,但它抛出了一个
invalidoOperationException
,因为所有者窗口尚未显示。
Loaded
事件在显示窗口之前发生。您可以使用示例回答解决方案,在渲染窗口后仅第一次显示某些内容。