2010-11-20 6 views
2

나는 가지고있는 데이터베이스 테이블에 의해 채워지는 콤보 박스를 가지고있다. 내 양식에 대한 내 Load 이벤트에서 나는 내가, "추가", "편집", 또는 내가이를 찾을 수 없습니다 저장 한 사업을 "삭제"할 때마다VB.net : 내 comboBox를 "새로 고침"하려면 어떻게합니까?

Me.BusinessTableAdapter.Fill(Me.BillingdbDataSet.Business) 

내 문제가 ... 인구가 내가 가지고있는 콤보 상자를 업데이트하는 방법. 프로그램을 종료하고 다시 열 때마다 변경 사항을 볼 수 있지만 변경이 발생한 후 누군가가 업데이트 방법을 알릴 수 있기를 바랍니다.

+0

당신은 기능과 리콜에 Adapter.Fill의 코드를 삽입 할 수 없습니다 그 때마다 새로 고침. –

+0

"추가"및 "편집"을 수행 할 때 추가 양식이 시작되고 그 후에는 내 콤보 상자 양식으로 돌아갑니다. 동일한 양식에 머물러 있기 때문에 내 "삭제"버튼에 대한 제안을 시도했지만 작동하지 않았습니다. – daveomcd

답변

2

문제는 INotifyCollectionChanged를 구현하는 것이 필요하다는 것입니다.

MSDN

당신은 어떤 콜렉션을 IEnumerable 인터페이스를 구현 을 통해 열거 할 수 있습니다. 그러나 동적 인 바인딩을 설정하여 컬렉션에서 삭제가 UI를 자동으로 업데이트하면 컬렉션은 이 INotifyCollectionChanged 인터페이스를 구현해야합니다. 이 인터페이스는 컬렉션이 변경 될 때마다 이 발생해야하는 이벤트 인 CollectionChanged 이벤트 을 노출합니다.

당신은 수동으로 새로 고칠 수 있지만, 이상적인 상황은 관찰 컬렉션 클래스에 바인드입니다 - http://msdn.microsoft.com/en-us/library/ms668604.aspx HTH

웨이드

+0

나는 그것을 살펴 봤는데, 나는 아직도 꽤 비주얼 베이직에 익숙하지 않기 때문에 나는 그것을 작동시킬 수 없었다고 생각한다. 누구나 예제/의사 코드를 가지고 있을까요? 감사! – daveomcd

+0

내가 무엇을 할 수 있는지 보자. – Wade73

+0

http://stackoverflow.com/questions/253843/simple-datagridview-refresh-question 저는 그들이 원하는 것을하고있는 것처럼 보이지만 콤보 박스 대신 datagridview를 사용합니다. 나는 실제로 목록을 만들지 않는다. 내 콤보 상자는 BindingSource로 채워집니다. 바인딩 소스가 내가 액세스 할 수있는 목록을 제공합니까? – daveomcd

1

데이터 집합을 사용하는 경우 기본 데이터 집합이 변경 될 때 이벤트를 발생시키는 dataview 클래스를 사용할 수 있습니다. 그런 다음 데이터를 콤보 상자에 바인딩하거나 자체 업데이트 코드를 작성하여 목록이 변경 될 때 발생하는 이벤트의 이벤트 처리기에 넣을 수 있습니다.

관련 문제