TabControl, DataBinding
От: Кирилл Барышников Киргизия  
Дата: 01.06.11 05:20
Оценка:
Доброго времени суток!
Имеется следующая проблема (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 ())


Буду рад любым ссылкам, комментариям
windows forms tabcontrol databinding
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.