DependencyObject in PropertyChangedCallback 不是同一个对象



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

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

相关内容

  • 没有找到相关文章

最新更新