我的依赖属性出现了一些奇怪的行为。我在 MyControl 类中设置了以下属性。
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); }
}
后来,我设置了以下内容:
MyTemp = 6.2831;
我设置了一个断点并检查了“this”的地址。然后我在 OnMyTempChanged 中设置了一个断点(见上文),并检查源地址。它与之前的“this”(MyControl)的地址不同。而且,数据也不一样。我设置的其他属性也不相同。看起来我有两个不同的 MyControl 对象实例。
这里发生了什么?我需要来自原始对象的数据……而不是我在 PropertyChangedCallback 中得到的混乱副本。