绑定更新后未触发附加属性的二传手

时间:2018-11-22 15:34:58

标签: c# wpf mvvm data-binding user-controls

我目前有一个带有自定义附加属性的UserControl,如下所示:

        public static readonly DependencyProperty CurrentValueProperty =
DependencyProperty.RegisterAttached("Value", typeof(double), typeof(myControl), new PropertyMetadata(Convert.ToDouble(1)));        

        public double currentValue
        {
            get => (Double)GetValue(CurrentValueProperty);
            set => SetValue(CurrentValueProperty, value);
        }

在我看来,我以编程方式创建控件的新实例,如下所示:

    myControl control = new myControl();
    control.SetBinding(
         myControl.CurrentValue, 
         new Binding("CurrentValue")
         {
              UpdateSourceTrigger=UpdateSourceTrigger.PropertyChanged
         });

但是,当绑定值更改时(即,通过其他方式更新了ViewModel的属性),我注意到附加属性的setter不会触发。例如,如果我将设置器更改为以下设置,则MessageBox不会触发:

set 
{ 
    SetValue(CurrentValue, value); 
    MessageBox.Show("Value Set"); 
}

但是,当我运行currentValue的getter并将返回的值放入MessageBox时,我发现该值是正确的。

这是怎么回事?

0 个答案:

没有答案