WPF数据绑定带分隔路径,而不是更新目标

时间:2013-02-11 11:56:23

标签: wpf data-binding dependency-properties

我有一个自定义WPF usercontrol,它有一个依赖项属性(下面的代码段)。哪个没有正确触发它的PropertyChangedCallback。

CustomControl:

public static readonly DependencyProperty ValueProperty =
    DependencyProperty.Register(
        "Value", typeof(float?), typeof(CustomControl),
        new UIPropertyMetadata(new PropertyChangedCallback(OnDependencyPropertyChanged)));

public float? Value
{
    get { return (float?)GetValue(ValueProperty); }
    set { SetValue(ValueProperty, value); }
}

private static void OnDependencyPropertyChanged(object sender, DependencyPropertyChangedEventArgs e)
{
   // Do something
}

当我用一个简单的路径绑定属性时,一切都很好。但是,当我使用分隔的路径语法时,依赖属性不应该更新。

工作装订:

<namespace:CustomControl Value={Binding ViewModelProperty}/>

不工作绑定:

<namespace:CustomControl Value={Binding ViewModelProperty.ObjectProperty}/>

使用工作语法,将调用OnDependencyPropertyChanged事件处理程序以响应视图模型触发的ViewModelProperty的PropertyChanged事件。但是,使用第二种语法时,仅调用OnDependencyPropertyChanged事件处理程序以更改ObjectProperty,并且不会调用ViewModelProperty的更改。我是否需要进行任何其他设置才能使分隔(。)路径语法正常工作? (默认情况下,与TextBox.Text属性具有相同的行为)

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Path属性进行绑定?

<nmspc:CustomControl Value="{Binding Path=ViewModelProperty.ObjectProperty}" />

我记得在以编程方式构建双向绑定时,需要使用Path属性。