属性 不改变依赖关系的双向绑定模式 属性
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 回调用于根据当前状态确保值有效,这感觉更像是您在此处所做的。
我有以下依赖关系属性:
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 回调用于根据当前状态确保值有效,这感觉更像是您在此处所做的。