我根本无法解决这个问题。以下两种方法是我项目中用于调试问题的方法。
我有一个XAML文本框控件充当搜索字段,此方法用于在用户按下返回键以提交搜索时进行侦听。按下返回键时,应将项目添加到我页面上的ListView控件中。
下面是该方法的两个版本,第一个专门侦听返回键但是这会产生一个错误,其中搜索的术语被添加到ListView的TWICE。
// 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 :(得分: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
}
}