내 종속성 속성에 이상한 동작이 나타납니다. 내 클래스 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 내부에 들어간 복사본이 엉망입니다.
컨트롤의 생성자에 중단 점을 넣고 얼마나 많은 인스턴스가 생성되는지 확인할 수 있습니까? – Nitin