C#在ListView中查找项时出错

本文关键字:出错 查找 ListView | 更新日期: 2024-09-21 04:09:10

我正在尝试搜索ListView,看看是否已经添加了某段文本。我试过使用其他答案,比如下面的代码:

ListViewItem item = ListView1.FindItemWithText(txtSearch.Text);
if (item != null)
{
   // you have match
}

然而,它强调了"FindItemWithText"的一个问题。错误消息为:

"Windows.UI.Xaml.Controls.ListView"不包含"FindItemWithText"的定义,也找不到接受第一个类型为"Windows.UI.Xaml.CControls.ListView"的扩展方法"FindItemWithText"(是否缺少using指令或程序集引用?)。

我正在使用Visual Studio 2013创建一个Windows Phone 8.1应用程序。

任何帮助都将不胜感激!

C#在ListView中查找项时出错

例如,您可以实现一个扩展方法,它将执行您想要的操作。考虑一个愚蠢的例子:

public static class ListViewExtensions {
    public static object FintItemWithText(this ListView lv, string text) {
        foreach (ListViewItem item in lv.Items) {
            if (item.Content.ToString() == text) {
                return item;
            }
        }
        return null;
    }
}

现在,您可以像下面的例子一样使用它:

object result = listView.FintItemWithText("A");

我只是在这里处理物体。这通常不是一个好的做法。也许最好推出自己的类,创建它的列表(或ObservableCollection)并设置绑定。然后,当您知道ListView中项目的类型时,您可以很容易地转换为众所周知的类型,并根据自己的喜好检查其属性。

使用一些LINQ 怎么样

if(listView.Items.Cast<ListViewItem>().Any(c => c.Content.ToString().Contains(txtSearch.Text)))
{
    // You have a match
}