0

내 종속성 속성에 이상한 동작이 나타납니다. 내 클래스 MyControl에 다음 속성을 설정합니다.PropertyChangedCallback의 DependencyObject가 동일한 개체가 아닙니다.

MyTemp = 6.2831; 

내가 중단 점을 설정하고 나는 "이"의 주소를 확인 :

public static DependencyProperty MyTempProperty = 
    DependencyProperty.Register("MyTemp", typeof(double), typeof(MyControl), 
           new UIPropertyMetadata(0d, OnMyTempChanged)); 

private static void OnMyTempChanged(
    DependencyObject source, DependencyPropertyChangedEventArgs e) 
{ 
    MyControl c = (MyControl)source; 
    //do something here 
} 

public double MyTemp 
{ 
    get { return (double)GetValue(MyTempProperty); } 
    set { SetValue(MyTempProperty, value); } 
} 

은 나중에, 나는 다음과 같은 설정합니다. 그런 다음 OnMyTempChanged (위 참조) 안에 중단 점을 설정하고 소스 주소를 확인합니다. 이전의 "this"(MyControl) 주소와 동일하지 않습니다. 또한 데이터가 동일하지 않습니다. 내가 설정 한 다른 속성도 동일하지 않습니다. MyControl 개체의 두 가지 인스턴스가있는 것 같습니다.

여기 무슨 일 이니? 원래 객체의 데이터가 필요합니다 ... PropertyChangedCallback 내부에 들어간 복사본이 엉망입니다.

+1

컨트롤의 생성자에 중단 점을 넣고 얼마나 많은 인스턴스가 생성되는지 확인할 수 있습니까? – Nitin

답변

0

Nit의 코멘트는 올바른 길로 나를 잡았습니다. 내 레이아웃 디자인을 기반으로 내 컨트롤의 두 복사본이 있습니다. 내 메뉴 고정 및 고정 해제 버전이 있습니다. 그들은 서로 동기화되어 있지 않았습니다.