Вопрос наверное простой, но я уже устал искать решение. Есть два грида на одной форме. Один главный ГРИД1 и второй подчиненый ГРИД2. При выборе строчки из ГРИД1 обновляются строки в ГРИД2. Все связи сделаны через студийный конструктор, датасет для гридов один. Проблема связана с удалением строчки из ГРИД2. (Для справки ГРИД 1 есть аггрегаты ГРИД2). Удаление строчки в ГРИД2 вызывает очень много действий, которые я провожу в специальном методе, потому что мне нужна транзакция (процедуры база не поддерживает). После удаления строчка удаляется из ГРИД2, но затем при выборе другой строки в ГРИД1, количество строк остается тем же что и у только что удаленной. Например,
ГРИД1
Корзина| Общее количество яблок
1 | 3
2 | 2 (выбран в текущий момент)
В корзине 1 — три строчки, в корзине 2 — две строчки. Предположим выбрана корзина 2 и мы видим две строки
ГРИД2
Дата | Количество яблок
12.02.2010 | 1
11.02.2010 | 1
Удаляем вторую строчку Del, вызывается метод удаления собственный, строка удаляется. Теперь в ГРИД1 перехожу на первую строчку, по идее в ГРИД2 сразу должно отобразится 3 строки, а там только одна. Т.е. ГРИД2 не перерисовался. Так вот вопрос как перезалить данные в датагрид???
Вот код:
// Нахожу выбранную в ГРИД2 строчку
int transaction_id = ГРИД2.Rows[e.Row.Index].Cells["tdg_transaction_id"].Value.ToString();
// Собственный метод удаления строки из базы
workSQL.deleteTransaction(transaction_id);
// Пытаюсь обнулить датасурс, но не помогает
ГРИД2.DataSource = null;
ГРИД2.DataSource = ГРИД2BindingSource;
Пробовал делать ГРИД2TableAdapter.Fill(tnoteDataSet.ГРИД2), помогает вроде, но если запись в ГРИД2 была последней, то вылетает с ошибкой что индекс выходит за пределы диапазона, причем не на методе удаления, а где то дальше.