PropertyChangedCallback中的DependencyObject不是同一个对象

时间:2013-09-23 23:41:09

标签: c# wpf dependency-properties propertychanged dependencyobject

我看到我的依赖属性有些奇怪的行为。我在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中获得的混乱副本。

1 个答案:

答案 0 :(得分:0)

Nit的评论让我走上正轨。根据我的布局设计,我有两个控件副本。我的菜单有固定版和未固定版。他们没有彼此保持同步。