2014-12-13 71 views
1

我不能工作了這一點,在所有。下面的兩個方法是剝離我的項目中用於調試問題的東西的方法。方法將多個項目添加到ListView而不是一個。

我作爲一個搜索領域的XAML TextBox控件和此方法旨在傾聽,當用戶按下回車鍵提交搜索。當按下回車鍵時,應將項目添加到我的頁面上的ListView控件中。

下面是該方法的兩個版本,第一爲返回鍵具體偵聽然而這產生在由所述搜索術語的兩倍加入到ListView錯誤。

// Adds two items to ListView 
    public void OnSearchKeyPressDown(object sender, KeyRoutedEventArgs e) 
    { 
     ListView termsList = termsListContainer; 
     if (e.Key == Windows.System.VirtualKey.Enter) 
     { 
      termsList.Items.Add(searchTerm.Text); 
     } 
    } 

以下版本是一個測試,它偵聽任何密鑰。這一個正常工作,並只添加一個項目到ListView。

//Adds only one item to ListView 
    public void OnSearchKeyPressDown(object sender, KeyRoutedEventArgs e) 
    { 
     ListView termsList = termsListContainer; 
     termsList.Items.Add(searchTerm.Text); 
    } 

我不能爲我的身影了在第一種方法是什麼的生活重複添加的項目 - 可能有人請幫助我,我敢肯定,這將是簡單,我俯瞰明顯事情。

乾杯。

+0

我想補充進一步澄清,如果我改變,該方法被監聽到別的東西像「一」的關鍵它只添加一個ListView項目,所以這與偵聽Enter鍵有關。 – James 2014-12-13 15:00:06

+0

當你輸入時第一個函數被調用了多少次? (在其中放置一個斷點並查看它被擊中了多少次,或添加一條日誌語句)。 – Gjeltema 2014-12-13 15:48:24

+0

感謝您的評論中,我實際上只是增加了一個答案,我在別處找到了 - 不知道這件事情我會在我自己曾經找到了!另外不知道我應該回答我的問題:-s – James 2014-12-13 15:49:43

回答

1

好吧,我設法進一步調查中找到了答案 - 不知道如果我打算回答我的問題或沒有,但我發現它在這裏,它似乎是一個錯誤微軟是知道的。

MSDN Article on Keydown on Enter bug

下面是帖子中提到的解決方法之一:

if (e.Key == Windows.System.VirtualKey.Enter) 
{ 
    if (e.KeyStatus.RepeatCount == 1) 
    { 
     //code you wish to call 
    } 
} 
相關問題