2013-09-30 4 views
1

IndexOf()은 콤보 박스에서 -1을 반환합니까? 디버깅 할 때 콤보 박스에는 7 개의 항목이 있습니다.함수 IndexOf가 ComboBox에서 -1을 반환하는 이유는 무엇입니까?

for (int i = 0; i < KontynentComboBox2.Items.Count; i++) 
{ 
    if((napis5.ItemArray.GetValue(0).ToString()) == ((((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString()))) 
    { 
     int inc = KontynentComboBox2.Items.IndexOf((((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString())); 
     KontynentComboBox2.SelectedIndex = inc; 
    } 
} 
+0

찾고있는 항목을 찾을 수 없습니다. –

+2

현재 항목의 색인을 찾으려고 시도하지 않고 선택한 색인을'i'로 설정하면됩니다. 당신은 이미 색인을 알고 있습니다. – Servy

+0

'for' 루프에 캐스팅이 충분합니까? :) – Brian

답변

0

-1은 아무것도 반환하지 않았 음을 의미하는 일반적인 반환 값입니다. 검색 대상의 인덱스를 리턴하는 함수를 검색 할 경우 -1은 해당 항목이 목록에 없음을 의미합니다.

아마도 IndexOf가 개체를 기다리고있을 가능성이 있습니다. 찾고있는 문자열은 객체 자체가 아니라 객체의 속성 일 가능성이 높습니다. 따라서 IndexOf는 일부 객체를 문자열과 비교하며 일치하지 않습니다.

SelectedIndex 대신 SelectedValue를 시도하십시오. 콤보 상자의 value 속성이 원하는 문자열을 보유하고 있으면 .NET은 콤보 상자의 항목을 검색하여 해당 매개 변수와 값이 일치하는 항목을 찾습니다.

KontynentComboBox2.SelectedValue =(((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString()); 
0

나는 그가 인덱스를 찾을 수 없습니다 .SO는 7이 개 아닌 문자열 항목이 콤보 동안 IndexOf()string을 찾고 있다고 생각합니다. XAML에서 수행하는 대신유형의 항목으로 요 콤보를 채우십시오.

관련 문제