2010-06-23 2 views
1

BindingList에 바인딩 된 파생 DataGridView가 있고 개체가 iNotifyPropertyChanged를 구현합니다.DataGridView가 iNotifyPropertyChanged 개체 질문과 바인딩되었습니다.

다음을 수행하고 싶습니다. DataGridView에 연결된 속성이 변경되면 내 열의 머리글을 업데이트하는 함수를 호출하고 싶습니다.

기본적으로 내 자신의 응답을 PropertyChanged 이벤트에 추가하고 싶습니다. 불행히도, hook \ handle이 어디에 이벤트를 직접 구독하는지 찾을 수 없습니다.

미리 감사드립니다.

편집 :
내가 취한 해결책은 상위 2 가지 답변 사이의 하이브리드였습니다. ListAdded \ Changed 이벤트에 가입하고 모든 함수를 업데이트하기에 충분한 컨텍스트를 얻을 수있었습니다.

답변

1

당신은 다음과 같은 방법을 오버라이드 (override) : 이 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.ondatamemberchanged.aspx 당신이 당신의 DataGridView에 바인딩 목록을 나타내는 실제 개체를 가져 ListBindingHelper 클래스 http://msdn.microsoft.com/en-us/library/system.windows.forms.listbindinghelper.aspx와 그의 GetList 방법을 사용한다 이러한 방법 내부

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.ondatasourcechanged.aspx을 OnDataSourceChanged OnDataMemberChanged. IBindingList로 캐스트하고 .NET FW 3.5 이상을 사용하는 경우 INotifyCollectionChanged 인터페이스에 해당 이벤트를 구독해야합니다.

+0

.net 2.0에서 작업 ... 내가 거기에서 그들을 잡을 수 있는지 얼마나 멀리 얻을 수 있는지 확인하고 볼 수 있습니다. 정확히 어떤 속성이 변경된 사실을 알 수있는 한 정확하게 변경된 속성을 알아낼 필요는 없습니다. ListChanged가 매번 해고되면, 그렇게 할 것입니다. – greggorob64

1

BindingList에서 ListChanged 이벤트를 확인하십시오.

편집 : http://msdn.microsoft.com/en-us/library/ms132742.aspx은 "목록 또는 목록의 항목이 변경 될 때"(즉 목록의 개체에 대한 PropertyChanged 이벤트가 발생했을 때) 이벤트가 발생한다고 말합니다.

+0

PropertyChanged 이벤트에 응답하는 위치입니까? – greggorob64

1

BindingSource.CurrentItemChanged 이벤트를 처리하고 싶습니다.