Я копирую ListViewItems из одного ListView в другой, sth. как:
foreach (ListViewItem item in usersListView.SelectedItems) {
selectedUsersListView.Items.Add((ListViewItem)item.Clone());
}
Если я хочу использовать ListView.ItemCollection.Contains (), чтобы определить, скопирован ли уже элемент, я всегда получаю false:
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 () ( not ListView.ItemCollection.ContainsKey ()) мог их идентифицировать?