依赖项属性回调不起作用

man*_*ans 2 wpf dependency-properties

我有以下代码:

private static readonly DependencyProperty IDProperty = DependencyProperty.Register(
           "ID", typeof(int), typeof(DetailDataControl), new PropertyMetadata(-1, new PropertyChangedCallback(IDChanged)));

    public int ID
    {
        get { return (int)GetValue(IDProperty); }
        set { SetValue(IDProperty, value); }
    }

    private static void IDChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
         // Do something here!  
    }
Run Code Online (Sandbox Code Playgroud)

我可以看到,当我更改ID时,行SetValue(IPproperty被调用),但它不会调用IDChanged.

为什么?

ani*_*vas 5

您的代码是正确的,但是在更改之前不会调用PropertyChanged回调.尝试在连续的代码行中将属性更改为两个不同的值,并有一个断点,您可以看到它已被命中.我相信它被设置为-1,因此它没有被调用.