将多个项添加到ListView而不是一个的方法。

时间:2014-12-13 14:47:17

标签: c# xaml listview

我根本无法解决这个问题。以下两种方法是我项目中用于调试问题的方法。

我有一个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);
    }

我不知道我的生活中的第一种方法是复制正在添加的项目 - 有人可以帮助我,我相信它会很简单,我会忽略一个显而易见的事情。

干杯。

1 个答案:

答案 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
    }
}