2012-03-06 4 views
2

여러 항목이 포함 된 목록 상자가 있습니다. 그리고 선택 변경 이벤트가 함수에 매핑되었습니다. 그러나 목록 상자 항목을 선택할 때마다 이벤트가 두 번 트리거됩니다. 결과로 나는 두 번째 라운드에서 -1로 선택된 인덱스를 얻고있다.Windows에서 목록 상자의 Selectionchanged 이벤트 문제

누구나이 동작에 대한 이유를 알고 있습니까?
XAML 코드

&ltListBox ItemTemplate="{StaticResource productTemplate}" Name="lstItems" SelectionChanged="ShowProductDetails"> 


C# 코드


private void ShowProductDetails(object sender, SelectionChangedEventArgs e) 
{ 
    Item item = lstItems.SelectedItem as Item; 
    int index = lstItems.SelectedIndex; 
} 
+0

이것은 올바르게 들리지 않습니다. 코드의 관련 비트를 보여 주어야합니다. – ColinE

+0

목록 상자 항목을 선택하면 선택 취소됩니다. 코드를 표시하면 지원할 수 있습니다. – Stuart

+1

선택한 항목이 없기 때문에 -1이 표시됩니다. 이것은 ListBox가 새로 고쳐 지거나 재생성되었거나 기본적으로 ListBox를 다시 설정하기 때문에 발생했을 가능성이 큽니다. – abhinav

답변

6

변경 이벤트마다 발생는리스트 박스를 다시하면 선택

(사용자 입력으로부터의 여부 중) 변화 선택 선택 변경 (대부분 -1 일 것임)

이 코드는 사용자가 무언가 (유효한 색인이있는 항목, 즉 -1이 아닌) 항목을 선택한 다음 코드를 실행하는지 확인합니다.

private void ShowProductDetails(object sender, SelectionChangedEventArgs e) 
    { 
     if(lstItems.SelectedIndex != -1) 
     { 
      Item item = lstItems.SelectedItem as Item; 
      int index = lstItems.SelectedIndex; 
     } 
    } 
+0

이 답변을 표시해야합니다! –

관련 문제