Доброго времени суток, Господа. Суть вопроса заключается в следующем:
Есть джентельменский набор отображение данных таблицы из базы данных: DataGridView, BindingSource, DataSet, TableAdapter.
Есть также кнопка "удалить", которая выполняет удаление строки из базы данных. Все работает отлично.
Мне нужно сделать так, чтобы когда данных в таблице не было, то эта кнопка была заблокирована. Тоесть блокировать эту кнопку нужно в том случае, если при загрузки формы данных в таблице нет, или если мы удалили последнюю строку с базы данных.
Все мы не любим костылей, и повторного кода, поэтому тупо писать условие в обработчике загрузки формы и обработчике нажатия на кнопку, я считаю глупо.
Я думаю, что есть какое-то событие, то ли у BindingSource, то ли у DataSet, или еще где-нибудь, которое реагирует на обновление данных таблицы.
Нашел такое событие у BindingSource - ListChanged. Оно мне не подходит по двум причинам:
- Оно скорее всего реагирует не на то, что мне конкретно надо, так как смотрю в дебаггере, на это событие раз по 10 при загрузке формы(обновления таблицы) приходит. Бред короче.
- Если создам textBox, который будет являться поиском по таблице, соответственное в обработчике TextChanged установлю Filter по выборке BindSource. Так вот, когда я начинаю вводить текст в TextBox, то соответственно устанавливается новый фильтр в BindingSource, а это в свою очередь вызывает ListChanged, а он в свою очередь разблокирует кнопку, которая должна быть заблокирована в данное время.
Надеюсь понятно все объяснил:) Помогите пожалуйста:)
DataSet'ом, а всегда читал вList<Entity>и отображал его. – VladD Jan 21 '17 at 22:18