이 예제에서 Model에 INotifyPropertyChanged를 구현하지 않아도 되는 이유가 무엇인가요?

코드만보면…간단한거 같습니다.
ObservableCollection items 하셨기때문에
ObservableCollection이 등록된 변수가 변경되면 내부적으로 INOtifypropertyChanged가 인터페이스 구현되어 해주는것으로 보입니다.
마소참고 하시면 내용있습니다.^^ 즐코딩하세요

2개의 좋아요

어떤 의도로 말씀하신 것인지 모르겠으나, 글로 소통하는 포럼의 경우 오해가 될 수 있는 부분이라고 보여졌습니다. 누군가의 고민에 경중은 없기 때문이죠…

위에 설명이 된 내용을 다시 한번 언급해서 공식문서에 내용이 이미 있다고 정리해주시는 답글이라면… 최소한 찾는 수고로움을 덜 수 있도록 링크를 남겨주는 것이 포럼을 생산적으로 이용하는 방법이라고 생각합니다. 제가 대신 남기겠습니다.

포럼이 좀 더 생산적인 소통 공간이 되었으면하여 글을 남겼습니다.

5개의 좋아요

원문에서의 질문은 모델의 속성을 수정했을 때 DataGrid에 반영되는 이유가 무엇인가이므로 ObservableCollection과 무관합니다.
ObservableCollection의 변경 통지는 컬렉션이 변경되는 경우에 한하는 것이지, 컬렉션 요소의 속성이 변경되는 경우에 대해서는 아무런 관련이 없거든요.

만약 컬렉션 요소의 속성이 변경되는 경우에도 알림을 지원하려면 요소가 추가될 때 INotifyPropertyChanged를 구현하는지 여부를 확인해 PropertyChanged 이벤트에 핸들러를 등록하고, 요소가 제거될 때는 PropertyChanged 이벤트로부터 핸들러를 제거하는 코드가 포함되어 있어야겠지만, ObservableCollection소스 코드를 확인해 보면 그런 구현은 되어 있지 않음을 확인할 수 있습니다.

또한 설령 ObservableCollection에 그러한 코드가 포함되어 있더라도, ObservableCollectionItemsControl에 바인딩되는 반면에 각 컬렉션 요소는 그 아이템에서 DataTemplate를 기반으로 생성하는 다른 컨트롤에 바인딩 될 것이기 때문에, ObservableCollection에서 발행하는 이벤트가 컬렉션 요소에 바인딩된 컨트롤에 전달되는 것은 불가능합니다. 제가 모르는 것일 수도 있지만

이 문제는 위에서 설명한 대로 ObservableCollection에 관련된 문제가 아니라 PropertyDescriptor에 관련된 문제입니다.

6개의 좋아요

아 죄송합니다… 저는 그런 의도의 글이 아닌데 그렇게 생각되었다면 제가 잘못전달 한것같습니다
다음부터는 질문자분이 좀 더 상세히 알수 있도록 링크와 설명을 함께 공유하도록 하겠습니다~
처음 답글 달아보는거라 대화의 방식에 오해가있엇다면 죄송합니다

6개의 좋아요