Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Инициировать DataBind / 1 сообщений из 1, страница 1 из 1
02.02.2010, 08:43
    #36443531
Andrey Vokin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициировать DataBind
Подскажите, как можно вызвать повторное связывание данных в такой ситуации.

Есть две таблицы, DICTIONARY (1)--(*) TABLE. Есть форма редактирования элемента из таблицы TABLE, на этой форме есть ComboBox со списком DICTIONARY.

Вот часть кода работы с этим комбобоксом.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Form_Load() 
{
	BindingContext[dataSet, "TABLE"].CurrentChanged += DictionaryItem_CurrentChanged;

	// Заполняем комбобокс дефолтной выборкой из TABLE
	tableAdapter1.Fill(dataSet.DICTIONARIES);
	comboBox.DataSource = bs;
	comboBox.DataBindings.Add("SelectedValue", dataSet, "TABLE.DICTIONARY_ID");
}

// В зависимости от того какой элемент из TABLE редактируем формируем разную выборку из DICTIONARY
private void DictionaryItem_CurrentChanged(Object sender, EventArgs e)
{
	// Для некоторых элементов набор DICTIONARY должен быть фильтрованным
	if (...)
	{

		tableAdapter2.Fill(dataSet.DICTIONARIES);

		comboBox.DataBindings.Clear();
		comboBox.DataBindings.Add("SelectedValue", dataSet, "TABLE.DICTIONARY_ID");
	}
}

Проблема в том, что если последние две строки кода закомментировать
Код: plaintext
1.
2.
	//comboBox.DataBindings.Clear();
	//comboBox.DataBindings.Add("SelectedValue", dataSet, "TABLE.DICTIONARY_ID");

, то при переключении между объектами (через BindingContext[].Position) Combobox не выделяет элемент соответствующий TABLE.DICTIONARY_ID (а я этого ожидаю, поскольку в Form_Load я уже указал такую привязку данных). Закомментированный код представляет собой workaround в том плане, что я отвязываю колонку TABLE.DICTIONARY_ID от контрола и привязываю заного. Работает, но смотреть на такой код неприятно... Хотел бы узнать есть ли какое-то решение типа:

Код: plaintext
1.
	combobox.DataBind();
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Инициировать DataBind / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]