2012-03-06 57 views
2

SelectionChanged事件對一個列表框我有幾個項目列表框。選擇已更改的事件已映射到一個函數。但是每次我選擇一個列表框項目,事件都會被觸發兩次。結果我在第二輪中將所選索引作爲-1。問題在Windows手機

的人都知道這種現象的原因嗎?
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 2012-03-06 08:54:23

+0

這聽起來像的東西是取消其被選中後,右側的列表框中的項目 - 向我們展示代碼,我們也許能夠幫助 – Stuart 2012-03-06 10:16:52

+1

你得到-1,因爲沒有選擇的項目。這很可能是因爲你的ListBox被刷新或重新生成,或者其他基本上重置你的ListBox的東西。 – abhinav 2012-03-06 10:43:22

回答

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

這個答案應該被標記! – 2012-03-13 05:31:36