我正在将 ListViewItems 从一个 ListView 复制到另一个,……。像:
foreach (ListViewItem item in usersListView.SelectedItems) {
selectedUsersListView.Items.Add((ListViewItem)item.Clone());
}
如果我想使用 ListView.ItemCollection.Contains() 来确定一个项目是否已被复制,我总是会得到错误:
foreach (ListViewItem item in usersListView.SelectedItems) {
if (!selectedUsersListView.Items.Contains(item) { // always !false
selectedUsersListView.Items.Add((ListViewItem)item.Clone());
}
}
我做了以下事情来解决我的问题:
foreach (ListViewItem item in usersListView.SelectedItems) {
ListViewItem newItem = (ListViewItem)item.Clone();
newItem.Name = newItem.Text;
if (!selectedUsersListView.Items.ContainsKey(newItem.Name) { // this works
selectedUsersListView.Items.Add(newItem);
}
}
所以,这可以解决我的问题,但我仍然不知道为什么 ListView.ItemCollection.Contains() 不起作用......
ListView.ItemCollection.Contains() 如何识别项目是否已存在?
ListViewItems 必须如何初始化 ListView.ItemCollection。Contains()(不是ListView.ItemCollection.ContainsKey())能够识别它们吗?