2011-03-18 5 views
1

내가 만들고있는 WP7 앱이 있는데 아직 로그인하지 않은 상태에서 로그인 화면을 표시하려고합니다. 나는 Main.xaml보기 모델 MainViewModel.cs 있습니다. 로그인 또는 가입 부분에 대한 GridMain.xaml에 포함 된 그들을 가지고 있지만 사용자 컨트롤을 잘 작동 할 것이라고 생각합니다. 로그인 및 가입 부분에는 AccountViewModel.cs, Grid 또는 사용자 컨트롤에 DataContext이 설정된 고유 한보기 모델이있을 수 있습니다. AccountViewModel.cs에서 발생에서 사용자까지 표지판이나 로그 후ViewModel 이벤트 커뮤니케이션

, 그것은이 완료되었음을 알 수 MainViewModel.cs 또는 Main.xaml위한 가장 좋은 방법은 무엇이며, 데이터로드를 시작하거나 할 필요가 어떤 일을 할 수 있습니까?

초기 생각은 MVVM Light의 메시징 시스템을 사용하는 것입니다. 가입/로그인이 완료되면 메시지가 완료되었음을 알리고 메시지에 MainViewModel.cs이 등록되고 이에 대응할 수 있습니다.

Main 아이가 뭔가를 알고있는 다른 방법이나 더 적절한 방법이 있습니까?

너무 어렵 으면 코드 예제를 추가 할 수 있습니다.

답변

2

MVVM Light와 같은 메시징 시스템은 이러한 유형의 동작을 분리하고 설명하는 방식으로 알림을 제공하는 훌륭한 방법입니다. 내가 정말로 다른 것을 옹호하는 것처럼 말할 수는 없다. Prism 라이브러리는 EventAggregator을 제공합니다.이 라이브러리는 동일한 작업을 수행하지만, 이미 MVVM Light를 사용하고있는 경우에는 그대로 사용하십시오.

0

또 다른 방법은 이러한 종류의 정보 (IsLoggedIn)를 예를 들어 SettingsViewModel.Instance와 같은 "전역보기 모델"에 저장하는 것입니다. 설정과 같은 글로벌 의미의보기 모델의 경우 IMHO를 많이 사용하는 접근 방식입니다. 이 속성으로 PropertyChanged 이벤트를 발생 시키면 속성 변경시 UI를 동적으로 수정하고 예를 들어 로그인 UI를 부드럽게 숨길 수 있습니다.

건배, 로랑