2017-10-04 16 views
0

ViewModel에서 완벽하게 목록을 표시하는 콤보 박스가 있지만 목록에서 선택한 항목을 선택하면 ViewModel 화면이 표시됩니다 목록에서 한 명만이 작업을 수행하도록할까요? ChooseViewModelCaliburn Micro MVVM이 ViewModel 화면을 표시하기 위해 comboBox 가져 오기

<ComboBox x:Name="CatalogName1" SelectedItem="{Binding SelectedCatalog1}" Style="{DynamicResource appComboBox}" Grid.Row="1" Grid.Column="1" > 
    </ComboBox> 

과에 : 그래서 여기 내가 ChooseView에있는 것입니다

ShowScreenViewModel를 표시해야 콤보 목록에서 "ShowScreen"
public List<string> CatalogName1 
    { 
     get 
     { 
      return new List<string> { "New", "Replace", "Extended", "Nothing", "ShowScreen" }; 
     } 


    } 

    private string selectedCatalog1; 
    public string SelectedCatalog1 
    { 
     get 
     { 
      return this.selectedCatalog1; 
     } 

     set 
     { 
      this.selectedCatalog1 = value; 
      this.NotifyOfPropertyChange(() => this.SelectedCatalog1); 
     } 
    } 

하지만 난 게터 세터와 시도 그것은 나에게 감각을 아니에요

+0

'set'의'value'가'ShowScreen'과 같은지 확인하는 메소드를 만들어야합니다. 그렇다면,'ViewModel'을 활성화시키고, 텍스트를 설정하고 notify를 호출하십시오. – arcticwhite

+0

그 방법에 대해 어떻게 생각 하나? 미안하지만 나는이 모든 구속력과 교정에 대해 새로운 말을해야만 했는가? –

+0

ViewModel을 활성화하는 방법 또는 ShowScreen을 클릭했는지 확인하는 방법을 의미합니까? – arcticwhite

답변

1

좋아,이 ... 나는이 문제를 해결하는 것이 방법입니다

private string selectedCatalog1; 
    public string SelectedCatalog1 
    { 
     get 
     { 
      return selectedCatalog1; 
     } 
     set 
     { 
      selectedCatalog1 = value; 
      ValidateValue(value); 
      NotifyOfPropertyChange(() => SelectedCatalog1); 
     } 
    } 
    private void ValidateValue(string s) 
    { 
     if (s == "ShowScreen") 
     { 
      ActivateItem(new ShowScreenViewModel()); 
     } 
    } 
+0

, 도움을 주셔서 감사합니다. –