2014-10-25 4 views
0

내 프로젝트에서 listpicker를 구현 중입니다. 내가 lstPicker1에서 항목을 선택하면 lstPicker2 항목이 변경 선택 여기listpicker-lstPicker1의 선택에 따라 lstPicker2 채우기

을 기반으로해야 시나리오가있는 lstPicker1 선택 변경된 이벤트 :

private void lstPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (lstPicker1 != null) 
     { 
      switch (lstPicker1.SelectedIndex) 
      { 
       case 0: 
        lstPicker2.ItemsSource = CreateList(1); 
        break; 
       case 1: 
        lstPicker2.ItemsSource = CreateList(2); 
        break; 
       default: 
        break; 
      } 
     } 
    }  

하고는, 코드 아래에

가는
private List<string[]> CreateList(int opt) 
    { 
    List<string> strLst = new List<string>(); 
     if (opt==1) 
       { 
        String[] str = new String[] { "Option1", "Option2" }; 
        for (int i = 0; i < 2; i++) 
         { 
         String str1 = str[i]; 
         strLst.Add(str1);        
         } 
         return strLst; 

      } 

     if (opt==2) 
       { 
        String[] str = new String[] { "Option3", "Option4", "Option5" }; 
        for (int i = 0; i < 3; i++) 
         { 
         String str1 = str[i]; 
         strLst.Add(str1);        
         } 
         return strLst; 

      } 
     }   

하지만 불행히도 그 오류를 던지고 @return strLst; (오류 : 문자열을 문자열 []로 암시 적으로 변환 할 수 없음)

위의 코딩을 놓친 경우 또는 내 접근 방식에 문제가있는 경우 알려주십시오.

답변

0

CreateList 반환 유형이 기본적으로 문자열 목록을 반환하는 동안 문자열 값 배열의 목록 인 List<string[]>입니다.

그냥 다음에 CreateList 방법의 서명을 변경

private List<string> CreateList(int opt) 

비고 코드에 : 나는 실제로 당신이 문자열 배열을 생성하고 왜 어떤 이유가 표시되지 않습니다

당신은주기에 당신의 목록을 채우고 있습니다. 경우에 따라 배열을 만드는 것과 같은 방법으로 항목 목록을 만들 수 있습니다.

당신은 컬렉션 이니셜 라이저 아래

에 MSDN에이 article, 부분을 읽을 수 수는 훨씬 적은 코드 라인 걸리는 CreateList 방법의 다른 구현 : 대한

private List<string> CreateList(int opt) 
{ 
    if (opt==1) 
    { 
      return new List<string> { "Option1", "Option2" } 
    } 

    if (opt==2) 
    { 
      return new List<string> { "Option3", "Option4", "Option5" }; 
    } 

    return new List<string>(); 
}  
+0

덕분에 당신의 제안. 하지만 불행히도 나는 (CreateList (int) : 모든 코드 경로가 값을 반환하는) 오류를 얻고있다. – SHiBiN

+0

@ZedProg 죄송합니다. 내 잘못 - 답변을 – danyloid

+0

@ ZedProg 업데이트했습니다. 'opt == 3 '이면'CreateList' 메쏘드에서 반환 된 것이 아무것도 없다. 따라서 기본값을 추가했습니다.'opt! = 1 && opt! = 1' – danyloid