C#错误在ListView中查找项目

时间:2015-03-01 12:34:28

标签: c# xaml listview

我试图搜索ListView以查看是否已添加某段文字。我尝试过使用此处的其他答案,例如下面的代码:

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

然而,它突出了" FindItemWithText"的问题。错误消息是:

' Windows.UI.Xaml.Controls.ListView'不包含' FindItemWithText'的定义没有扩展方法' FindItemWithText'接受类型' Windows.UI.Xaml.Controls.ListView'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)。

我使用Visual Studio 2013创建Windows Phone 8.1应用。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

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

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中的项目类型时,您可以轻松地转换为众所周知的类型,并根据需要检查它的属性。

答案 1 :(得分:0)

如何使用一些LINQ

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