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

C# 方法将多个项而不是一个项添加到ListView。,c#,xaml,listview,C#,Xaml,Listview,我根本无法解决这个问题。以下两种方法是我的项目中用于调试某个问题的精简方法 我有一个XAML文本框控件作为搜索字段,该方法用于在用户按下返回键提交搜索时侦听。当按下返回键时,应将一个项目添加到页面上的ListView控件中 下面是该方法的两个版本,第一个版本专门侦听return键,但是这会产生一个错误,其中按搜索的词向ListView添加了两次 // Adds two items to ListView public void OnSearchKeyPressDown(object se

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

我有一个XAML文本框控件作为搜索字段,该方法用于在用户按下返回键提交搜索时侦听。当按下返回键时,应将一个项目添加到页面上的ListView控件中

下面是该方法的两个版本,第一个版本专门侦听return键,但是这会产生一个错误,其中按搜索的词向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);
        }
    }
//Adds only one item to ListView
    public void OnSearchKeyPressDown(object sender, KeyRoutedEventArgs e)
    {
        ListView termsList = termsListContainer;
        termsList.Items.Add(searchTerm.Text);
    }
下面的版本是监听任何密钥的测试。这一个工作正常,只向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);
        }
    }
//Adds only one item to ListView
    public void OnSearchKeyPressDown(object sender, KeyRoutedEventArgs e)
    {
        ListView termsList = termsListContainer;
        termsList.Items.Add(searchTerm.Text);
    }
在我的一生中,我不知道第一种方法中什么是复制添加的项目-请有人帮助我,我相信这很简单,我忽略了一件显而易见的事情


干杯。

好的,我已经通过进一步的调查找到了答案——不确定我是否应该回答我自己的问题,但我在这里找到了,这似乎是微软意识到的一个错误

以下是文章中提到的解决方法之一:

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

为了进一步澄清,如果我将该方法正在侦听的键更改为“a”之类的其他键,它也只会添加一个ListView项,因此这与侦听Enter键有关。当您单击Enter键时,第一个函数调用了多少次?(在其中放置一个断点,看看它被点击了多少次,或者添加一个日志语句)。感谢您的评论,我实际上刚刚添加了一个我在别处找到的答案——不确定这是我自己会找到的答案!也不确定我是否应该回答我自己的问题:-拒绝回答你自己的问题是可以接受的-如果你接受你的答案,你甚至可以得到一个小徽章,我相信。很高兴看到我在正确的轨道上,认为回车键多次触发回调。祝你好运!