属性 不改变依赖关系的双向绑定模式 属性

Property not change on two way binding mode with dependency property

我有以下依赖关系属性:

public bool UndoZoom
        {
            get { return (bool)GetValue(UndoZoomProperty); }
            set { SetValue(UndoZoomProperty, value); }
        }
        // Using a DependencyProperty as the backing store for UndoZoom.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty UndoZoomProperty =
            DependencyProperty.Register("UndoZoom", typeof(bool), typeof(ZoomBehavior), new PropertyMetadata(false, new PropertyChangedCallback(OnUndoZoomChanged)));

在回调方法中,我将此 属性 更改为 false:

   private static void OnUndoZoomChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
    {
        ZoomBehavior zoomBehavior = sender as ZoomBehavior;
        if (zoomBehavior == null || zoomBehavior.UndoZoom == false)
            return;

       //DO SOMETHING... 
        zoomBehavior.UndoZoom = false;

       //ALSO TRY:  zoomBehavior.SetValue(UndoZoomProperty, false);
    }

依赖项 属性 变化很好,但是绑定到它的 属性 没有!

绑定看起来像这样:

UndoZoom="{Binding MyClass.UndoZoom,Mode=TwoWay}"

我想指出,绑定确实 有效 ,当我更改模型中的 属性 时,回调触发,这意味着依赖项 属性 变化。

我只是不明白为什么它也不能以另一种方式工作,我希望当我更改依赖项 属性 时,模型中的 属性 也会更改。

我很乐意帮忙。

强制回调更适合这样做。 属性 changed 回调用于响应值的变化。 Coercion 回调用于根据当前状态确保值有效,这感觉更像是您在此处所做的。