Доброго времени суток!
Имеется следующая проблема (Windows Forms, C# 2008). На форме расположен TabControl, в котором есть несколько вкладок (TabPage).
На каждой вкладке располагаются текстовые поля, которые связаны с источником данных.
Реализуется следующий механизм- перед сохранением данных осуществить валидацию, и выдать те поля, которые заполнены некорректно. Поля, подлежащие валидации располагаются на нескольких вкладках.
Проблема заключается в том, что если не активировать вкладку — то связывания элементов на соответствующей вкладке не происходит, и соответственно поле остается пустым (свойство Text пустое) – и пользователю отображается, что это поле не заполнено. Если же перейти – на вкладку – то связывание происходит
Пока используется обходной путь – перед валидацией последовательно активируем все вкладки:
int currentIndex = tabControl.SelectedIndex;
for (int i = 0; i < tabControl.TabCount; i++)
if (i != currentIndex)
tabControl.SelectedIndex = i;
// и снова выбираем первоначальную вкладку
tabControl.SelectedIndex = currentIndex;
Недостаток этого метода состоит в мерцании элемента управления, и что это все происходит на глазах у пользователя
Вопрос:
— как можно реализовать DataBinding, чтобы он связывал данные во всех TabPages сразу же при загрузке форме?
— если так сделать нельзя, то как можно сделать, чтобы переключение вкладок осуществлялось без моргания (по аналогии с
listView.BeginUpdate ()
и
EndUpdate ())
Буду рад любым ссылкам, комментариям