我有一个自定义 WPF 用户控件,它具有依赖属性(下面的代码段)。哪个没有正确触发它的 PropertyChangedCallback。
自定义控件:
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 等属性默认具有相同的行为)