2014-12-13 73 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 
    } 
} 
相关问题