2013-09-26 2 views
0

У меня есть combobox на winform, и вам нужно иметь возможность вызвать метод, когда привязка данных combobox завершена. Я удивлен, увидев, что для элемента управления ComboBox нет события DataBindingComplete, например, для DataGridView.Событие для привязки данных combobox завершено?

Как узнать, когда привязка данных завершена? Синхронизируется ли привязка данных для combobox? (То есть, если у меня есть следующий код, это гарантирует, что привязка данных будет завершена, когда она попадает на вторую строку кода?)

myComboBox.DataSource = foo 
SomeMethod() 
+1

Зачем это не связано в этот момент? Что вы проверили, чтобы показать, где это не так? – OneFineDay

+0

Поскольку DataGridView имеет событие OnDataBindingComplete, я думал, что привязка данных была выполнена асинхронно. Кроме того, в ASP.Net почти все элементы управления имеют событие OnDataBound, что также заставляет меня думать, что привязка данных была асинхронной. Комбобокс казался несовместимым с другими элементами управления. Если привязка данных выполняется синхронно, почему у нас есть эти события? – jkpRHT

ответ

0

Вы могли бы сделать класс, где вы обрабатывать все доступ к данным, а затем по мере восстановления данных вы можете поднять событие с этого уровня на вызывающую форму, используемую для отображения ваших данных.

Data Access Layer

+0

Да, я знаю, когда мои данные загружаются из БД. Я хочу знать, когда combobox является привязкой к базе данных (т. Е. Когда были созданы все элементы combobox?). – jkpRHT

+0

Если ваши данные загружены из источника, элементы были созданы. Если ваши данные поступают в 'async', например' WCF', они заполняются позже и могут быть обнаружены и привязаны в методе «Асинхронный обратный вызов». Как я уже сказал в своем ответе, если у вас есть «DAL», то после того, как вы сделаете звонок в базу данных, вы поднимите событие и передадите данные - теперь вы знаете, что данные были возвращены. – OneFineDay

Смежные вопросы