2014-11-06 3 views
0

MainWindow이 표시된 후에 모달 대화 상자를 표시하려고합니다.모달 로그인 대화 상자 표시

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

뷰 모델에서 내가 전화 했어 : (같이 SSMS에서)

내가 다음 코드를 호출 어디 이것이 MVVM 접근하지 알고 있지만 나는 MainWindowLoaded 이벤트를 사용하고

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

로그인 대화 상자가 표시되지만 대화 상자가 닫힌 경우에만 MainWindow이 표시됩니다.

MainWindow과 LoginDialog를 동시에 어떻게 표시합니까?

+1

'로드 됨'이벤트가 * 전에 * 발생합니다. 당신은 예제를 [*] (http://stackoverflow.com/a/14605461/1997232) 해답을 * 후 * 렌더링 된 후 처음으로 렌더링하는 데 사용할 수 있습니다. – Sinatr

답변

1

MVVM을 사용하는 경우 생성자에서 대화 상자를 호출합니다. IDialogService를 사용하는 것이 좋습니다. 많은 MVVM 프레임 워크/libs에서 찾거나 쉽게 직접 작성할 수 있습니다. 또한이 방법으로 문제가 해결됩니다.

+0

사용자 지정 DialogService의 예가 있습니까? 나는 http://uxprogramming.blogspot.de/2013/06/simple-mvvm-dialogservice.html을 발견했으나 소유자 창이 아직 보이지 않았기 때문에'InvalidOperationException'을 던지고 있습니다. –

관련 문제