2014-11-06 90 views
0

我试图在MainWindow显示后显示模态登录对话框。 (如在SSMS)显示模态登录对话框

我知道这是不是MVVM的做法,但我使用MainWindowLoaded事件,我调用下面的代码:

private void MainWindow_OnLoaded(object sender, RoutedEventArgs e) 
{ 
    ViewModel.ShowLoginDialog(); 
} 

在视图模型我打电话:

public void ShowLoginDialog() 
{ 
    var vm = new LoginControlViewModel(); 
    var window = new LoginWindow(vm); 
    window.ShowDialog(); 
} 

那么会显示登录对话框,但MainWindow只有在对话框关闭时才会显示。

如何同时显示MainWindow和LoginDialog?

+1

在显示窗口之前发生'加载的'事件*。您可以使用示例[this](http://stackoverflow.com/a/14605461/1997232)回答解决方案,在*窗口呈现后仅显示某些内容*。 – Sinatr 2014-11-06 09:39:44

回答

1

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

+0

你有一个自定义DialogService的例子吗?我找到了http://uxprogramming.blogspot.de/2013/06/simple-mvvm-dialogservice.html,但它抛出了一个'InvalidOperationException',因为所有者窗口还没有显示出来。 – 2014-11-06 08:05:12