2012-06-11 6 views
1

WPF 바인딩 업데이트를 허용하기 위해 INotifyPropertyChanged를 구현하는 많은 데이터 개체가 있습니다. 우리의 코드가 PropertyChanged에 가입하는 곳은 여러 가지가 있습니다. 왜냐하면 우리는 가치있는 업데이트에 관심이 있기 때문입니다.우리 코드가 PropertyChanged에 가입해야합니까?

실제로 어떤 속성이 실제로 변경되었는지를 확인해야하는 경우 (이 코드는 항상 표현식을 사용하므로 형식/리펙터가 안전합니다) 꽤 추악한 코드가 생성됩니다.

우리가 구독하고 싶거나 PropertyChanged에 연결하여 속성 이름을 확인하려는 경우 특정 이벤트 (PriceChanged 등 ...)를 발생시키는 것이 좋습니까?

+2

자신의 이벤트를 사용하는 경우 값이 실제로 변경되었거나 방금 작성되었는지 여부를 나타내는 'bool'을 추가 할 수 있습니다. 이벤트 패키지의 일부로 전후 값을 제공 할 수도 있습니다. –

답변

2

구독하려는 속성 수가 너무 크지 않은 경우 가독성 및 검색 가능성 측면에서 우수하므로 전용 이벤트를 만듭니다.

그러나 몇 가지 속성이있는 경우 대답이 그다지 명확하지 않습니다. 나는 대개 Observer Synchronization 패턴을 적용하여 이러한 상황을 피하려고 노력합니다 (ViewModel보다는 모델 변경을 구독 함). VM을 얇게 유지하는 데 도움이됩니다.

관련 문제