我创建了一个列表视图,我正在向其中添加数据,我想避免重复,所以在向其中添加新项目之前,我正在搜索列表视图。我在这里找到了一些类似的代码(我想?)
array<ListViewItem^>^ lvHostsSearch = lvHosts->Items->Find(gcnew String(myStr), false);
if(lvHostsSearch->Length == 0)
{
// Add Item to listbox since it was not found.
}
Find()方法的MSDN页面声明返回值是一个数组:
包含匹配项的ListViewItem对象数组,如果没有匹配项,则为空数组。
这就是为什么它测试一个长度为0的数组。尽管它仍然一次又一次地添加它?我知道我的逻辑一定是错的,或者看到了一些错误。感谢您的帮助!谢谢
编辑(已解决):
我终于找到了在列表视图中搜索文本的方法。正如在MSDN页面上看到的那样。我最终做了这样的事情:
if(myListView->FindItemWithText(myStr) == nullptr)
希望它能帮助其他人。
答案是使用ListView::FindItemWithText,请阅读此处的用法。请参阅我上面的编辑,了解我如何解决我的确切问题。