C# 在 ListView 中查找项目时出错
C# Error Finding Item in 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 应用程序。
如有任何帮助,我们将不胜感激!
例如,您可以实现一个扩展方法,它将执行您想要的操作。
考虑一个愚蠢的例子:
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");
我只是在这里处理对象。这通常不是一个好习惯。也许推出您自己的 class、创建它的列表(或 ObservableCollection)并设置绑定会更好。然后,当您知道 ListView 中项目的类型时,您可以轻松地转换为众所周知的类型并根据需要检查它的属性。
使用一些 LINQ 怎么样
if(listView.Items.Cast<ListViewItem>().Any(c => c.Content.ToString().Contains(txtSearch.Text)))
{
// You have a match
}
我正在尝试搜索 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 应用程序。
如有任何帮助,我们将不胜感激!
例如,您可以实现一个扩展方法,它将执行您想要的操作。 考虑一个愚蠢的例子:
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");
我只是在这里处理对象。这通常不是一个好习惯。也许推出您自己的 class、创建它的列表(或 ObservableCollection)并设置绑定会更好。然后,当您知道 ListView 中项目的类型时,您可以轻松地转换为众所周知的类型并根据需要检查它的属性。
使用一些 LINQ 怎么样
if(listView.Items.Cast<ListViewItem>().Any(c => c.Content.ToString().Contains(txtSearch.Text)))
{
// You have a match
}