Как предотвратить изменение selectedValue при вызове метода tableAdapter Fill()?
Я привязал свой ListBox к некоторым данным.
Проблема в том, что когда я вызываю метод myTableAdapter.Fill(..), SelectedValue изменяется на любой идентификатор первого элемента в списке. Хотя "Выбранное значение" в VS не привязано нигде (см. Изображение). http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png
Как мне предотвратить это поведение, пожалуйста?
Большое спасибо за помощь.
2 ответа
Вы не должны быть обязательными для каждого запроса. Если по какой-либо причине вам абсолютно необходимо выполнять привязку к каждому запросу, вам нужно установить SelectedIndex в ListBox вручную. Это связано с тем, что метод Fill сначала очищает список, а затем создает новые элементы списка для извлеченных данных.
Самый простой способ, который я могу придумать, - это изменить код заполнения адаптера таблицы примерно так:
string preSelected = myDropDownList.SelectedValue;
myTableAdapter.Fill(myDataTable);
myDropDownList.SelectedValue = preSelected;
Вы столкнетесь с проблемой, если элемент больше не существует, поэтому вы можете добавить условие, чтобы проверить это.