2010-12-17 1 views
0

내 동료와 함께 우리는 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 
      })); 

답변

0

바인딩시 Mode = TwoWay 선언을 놓친 지 확인하십시오.

관련 문제