2009-06-08 5 views

답변

9

앞으로, INotifyPropertyChanged이 표준이며 WPF에서 훨씬 더 나은 지원을합니다. BindingList<T>INotifyPropertyChanged만을 존중합니다 (반사경에 HookPropertyChangedUnhookPropertyChanged 참조).

UI는 이벤트 당 하나가 아닌 하나의 이벤트 후크 만 필요로하므로 더 효율적입니다. 속성 당 하나가 아닌 하나의 핸들러에 대한 필드 만 필요하므로 클래스가 더 효율적일 수 있습니다. EventHandlerList과 정적 키 세트를 거쳐야한다는 번거 로움)

옛날 스타일은 주로 숙취입니다.

+0

감사합니다. 인터페이스 이름이 수정되었습니다. –

+0

하지만 이것을 사용하여 자신을 볼 수 있습니까? 내 말은, 무엇이 바뀌 었는지 알아보기 위해 문자열 비교를 할 것으로 예상됩니까? –

+0

네, 기본적으로. 또는 일반적으로 매핑 이름이 문자열 인 UI 컨트롤과 비교하십시오. –

2

INotifyPropertyChanged 인터페이스를 구현하면 바인딩 원본이 속성 변경 내용을 자동으로 수신하고 컨트롤을 업데이트하는 이점이 있습니다.

이렇게하십시오. INotifyPropertyChanged 인터페이스없이 클래스를 생성하고 무언가에 바인딩하십시오. 예를 들어, 속성 중 하나를 TextBox의 Text 속성에 바인딩 할 수 있습니다. TextBox의 텍스트가 아니라 상자에 바인딩 된 인스턴스의 해당 속성 값을 변경할 단추를 추가합니다. 실행하고 버튼을 클릭하십시오. 텍스트 상자에 변경 사항이 통지되지 않습니다. 그런 다음 클래스에 INotifyPropertyChanged를 구현하면 PropertyChanged를 통해 속성의 설정 기가 해당 변경 사항을 통보 받도록하고 실험을 반복 한 후에 TextBox가 업데이트되는 것을 볼 수 있습니다.

관련 문제