Я использую ListView для отображения элементов в списке. Пользователь может выбрать элементы сам или использовать некоторые «ключи предварительного выбора» для выбора элементов с указанными атрибутами.
Для проверки предметов я использую что-то подобное:
for(int i;i<MyListView.Items.Count;++i)
{
if( /*... Check if the items should be selected ...*/ )
(MyListView.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem).IsSelected = true;
}
Это прекрасно работает для предметов, которые видны во время исключения. Но для элементов, которые не видны, ContainerFromIndex () возвращает ноль. Я слышал, что это как-то связано с виртуализацией, и что Список не знает об элементах «вверх» или «вниз» «поля зрения». Но как получается, что выбранные элементы в Списке могут находиться вне поля зрения, когда вы выбираете их вручную?
А как сделать выбор элемента вне «поля зрения»? Я думаю, что это должно быть возможно.
Спасибо за любую помощь,
Marks