Как предотвратить изменение selectedValue при вызове метода tableAdapter Fill ()? - PullRequest
0 голосов
/ 08 января 2009

Я привязал свой ListBox к некоторым данным.

Проблема в том, что когда я вызываю метод myTableAdapter.Fill (..), SelectedValue изменяется на любой идентификатор первого элемента в списке. Хотя «Выбранное значение» в VS не привязано нигде (см. Изображение). альтернативный текст http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png

Как мне предотвратить такое поведение, пожалуйста?

Большое спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 17 августа 2009

Самый простой способ, который я могу придумать, - это изменить код заполнения адаптера таблицы на что-то вроде этого:

string preSelected = myDropDownList.SelectedValue;
myTableAdapter.Fill(myDataTable);
myDropDownList.SelectedValue = preSelected;

Вы столкнетесь с проблемой, если элемент больше не существует, поэтому вы можете добавить условие, чтобы проверить это.

1 голос
/ 17 августа 2009

Вы не должны связывать каждый запрос. Если по какой-либо причине вам абсолютно необходимо выполнять привязку к каждому запросу, вам нужно установить SelectedIndex в ListBox вручную. Это связано с тем, что метод Fill сначала очищает список, а затем создает новые элементы списка для извлеченных данных.

...