Связанный ListBox SelectedIndex продолжает меняться - PullRequest
0 голосов
/ 25 января 2011

У меня есть ListBox, который связан со списком. Каждый раз, когда ListBox обновляется для отражения коллекции, SelectedIndex изменяется на верхний элемент. Как можно остановить это поведение и сохранить текущий SelectedIndex?

[UPDATE]

Я нашел лучшую коллекцию для такого рода функций - BindingList: http://msdn.microsoft.com/en-us/library/ms132679(v=VS.90).aspx.

WulfgarPro.

Ответы [ 2 ]

2 голосов
/ 25 января 2011

Когда [...] обновляется в соответствии с коллекцией

Значит ли это, что есть новая коллекция? Если так, что означает «та же самая позиция»?

При повторной привязке к (другому) списку вам придется сохранять и восстанавливать позицию индекса. Просто напишите код в месте, где вы обновляете источник данных.

1 голос
/ 25 января 2011

Использование коллекции BindingList вместо List исправило многие мои проблемы.Первоначально я использовал Thread и Delegate для запроса коллекции и вызова ListBox.DataSource = [..] для обновления привязки.Это было медленно, громоздко и подвержено ошибкам.Не говоря уже о моей первоначальной проблеме неспособности легко сохранить выбранный элемент.Переход к BindingList позволил мне удалить поток и делегировать, и теперь все работает как задумано.Назначение желаемого свойства отображения для ListBox может быть достигнуто с помощью ListBox.DisplayMember = [..].

WulfgarPro.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...