2010-12-16 5 views
2

MainView가 있고 MainView 내부에 스택 패널이있는 경우 그리고 지금 내가 원하는 것은 메뉴 항목 클릭을 기반으로 다른보기를 연결하는 것입니다. MVVM Light를 사용하여이를 구현하는 방법은 무엇입니까?MVVM Light for WPF의 뷰 연결

누군가 코드 또는 비디오로 프로젝트 샘플에 대한 링크를 게시 할 수 있다면 좋을 것입니다 !!

답변

3

나는 MVVM 빛에 대해 잘 모르지만, 다음과 같이 나는이 빛 프레임 워크없이 그런 일을 수행

<!-- Content area that contains user controls for all wizard steps --> 
    <Grid Margin="0,3,0,0"> 
     <Views:CustomerSelection Visibility="{Binding Path=IsCustomerSelectionVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:CustomerInformation Visibility="{Binding Path=IsCustomerInformationVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:CustomerPreferences Visibility="{Binding Path=IsCustomerPreferencesVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:ProjectSelection Visibility="{Binding Path=IsProjectSelectionVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:KitchenProjectPreferences Visibility="{Binding Path=IsKitchenProjectPreferencesVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
     <Views:OtherProjectProperties Visibility="{Binding Path=IsOtherProjectPropertiesVisible, Converter={StaticResource boolToVisibilityConverter}}" /> 
    </Grid>  

그리고 기본 뷰 모델에 난 그냥 된 UserControls 중 하나 만들기에 적합한 속성을 설정 명백한.

+0

좋아 보이지만 처음에는 모든보기와 구성 요소를로드합니까? – WhoIsNinja

+0

내 경우에는 네, 두 subviewmodels 가진 기본 viewmodel 가지고 있기 때문에; 이미로드 된 두 개의 도메인 객체를 포함합니다. 너의 경우에 나는 모른다. 적절한 경우 표시 될 때까지 뷰 모델의 데이터로드를 지연하도록 선택할 수 있습니다. –

+0

그게 맞아. Ludwig에게 감사드립니다! – WhoIsNinja

0

더 나은 방법은 mainview에서 모든보기의 데이터 형식을 정의하는 것입니다. 그리고 itemscontrol (mainviewmodel의 viewmodels 속성 모음에 바인딩)

이제 menuitem을 클릭하여 해당 viewmodels 컬렉션을 지우고 필요한보기를 추가합니다.

관련 문제