내 동료와 함께 우리는 Prism의 NotificationObject와 관련하여 SilverLight에 문제가 있습니다.이벤트 처리기가 취소되었거나 SL의 RaisePropertyChanged()에 의해 호출되지 않았는지 어떻게 확인할 수 있습니까?
우리의 문제는 다음과 같습니다.
- 우리는 우리가 디버깅 할 때, 우리는 그 이벤트 핸들러가 할당되고 proerty 값이 변경 될 때 호출 될 때 참조
- 그런 다음 우리는 세터
- 에 RaiseChangedEvent를 호출 우리 DependencyProperties 중 하나에 이벤트 처리기를 바인딩합니다.
- 하지만 일단 UI에서 속성 값을 변경하면 이번에는 이벤트 핸들러가 호출되지 않는다는 것을 알 수 있습니다.
그래서 우리가해야 할 : 이벤트 핸들러는 여전히 바인더 제본되어
- 경우
(null가 아닌 경우를 제외하고, 우리가이 바인더 제본 믿습니다)가 바인더 제본하면 이벤트 인 이유 취소되었거나 익명 이벤트 처리기 메서드가 다시 호출되지 않는 이유 (중단 점이 적중되지 않음)
아래의 코드 조각을 볼 수 있습니다.
내 질문은 : 볼 수있는 방법은
거기에 왜 RaisePropertyChanged ("MyProperty"); 요청자라는이 DependencyProperty에 대한 이벤트 핸들러 할당자를 호출하지 않습니까? 어떤 제안?
내가 일반화하는 경우 : RaisePropertyChanged ("Requestor"); 전화를 걸고 전화가 걸려 오는 곳과 어디에서 나왔는지?
내 코드 조각을 참조하십시오
// My dependency property in my ViewModel
public CompanyEntity MyProperty
{
get { return _MyProperty; }
set
{
_MyProperty = value;
RaisePropertyChanged("MyProperty");
}
}
// And my Dependency Property Event handler setting in my user control:
public static readonly DependencyProperty FactoryProperty =
DependencyProperty.Register("Factory", typeof (FactoryEntity), typeof (FactoryPicker),
new PropertyMetadata((x, y) =>
{
// Some settings and processes
}));