2013-09-26 2 views
0

나는 winform에 콤보 박스가 있으며, 콤보 박스의 데이터 바인딩이 완료되면 메소드를 호출 할 수 있어야한다. DataGridView와 같은 ComboBox 컨트롤에 대한 DataBindingComplete 이벤트가 없다는 것에 놀랐습니다.이벤트가 완료 되었습니까?

데이터 바인딩이 완료되면 어떻게 알 수 있습니까? 데이터 바인딩은 콤보 박스를 위해 동 기적으로 수행됩니까? (나는 다음과 같은 코드가있는 경우 즉, 그것은 코드의 두 번째 줄을 칠 때 데이터가 완료됩니다 바인딩 보장인가?) 당신은 모든 데이터 액세스를 처리하는 클래스를 만들 수

myComboBox.DataSource = foo 
SomeMethod() 
+1

왜 그 시점에서 바인딩되지 않습니까? 어떤 경우가 아닌지 보여주기 위해 무엇을 테스트 했습니까? – OneFineDay

+0

DataGridView에 OnDataBindingComplete 이벤트가 있기 때문에 데이터 바인딩이 비동기 적으로 완료되었다고 생각했습니다. 또한 ASP.Net에서 거의 모든 컨트롤에는 OnDataBound 이벤트가 있으며 데이터 바인딩이 비동기라고 생각하게합니다. 콤보 박스는 다른 컨트롤과 일치하지 않는 것처럼 보였습니다. 데이터 바인딩이 동 기적으로 수행되는 경우 왜 이러한 이벤트가 발생합니까? – jkpRHT

답변

0

, 다음 데이터가 검색되면 해당 레이어에서 데이터를 표시하는 데 사용하는 호출 양식으로 이벤트를 발생시킬 수 있습니다.

Data Access Layer

+0

예, 데이터가 DB에서로드 된시기를 알고 있습니다. 내가 알고 싶은 것은 콤보 박스가 데이터 바인딩 된 시점 (즉, 모든 콤보 박스 항목이 생성되었을 때)입니다. – jkpRHT

+0

소스에서 데이터로드가 완료되면 항목이 생성됩니다. 데이터가'WCF'와 같이'async'에 들어온다면 그들은 나중에 채울 것이고'Asynchronous callback' 메쏘드에서 검출되고 바인드 될 수 있습니다. 당신이'DAL '을 가지고 있다면 내 대답에 명시된 것처럼 데이터베이스에 대한 호출을 한 후 이벤트를 발생시키고 데이터를 전달합니다. 이제 데이터가 반환되었음을 알 수 있습니다. – OneFineDay

관련 문제