我无法正确绑定到页面中的UserControl属性。
我有这个UserControl:
<UserControl x:Class="xxxx.NumericBox" (...)>
<TextBox Name="TextBoxValue" Text="{Binding RelativeSource {RelativeSource AncestorType=UserControl}, Path=Value, Mode=TwoWay}" (...)
这背后的代码:
public partial class NumericBox : UserControl
{
public NumericBox()
{
InitializeComponent();
}
public uint? Value
{
get => (uint?)GetValue(ValueProperty);
set => SetValue(ValueProperty, value);
}
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(uint?), typeof(NumericBox), new PropertyMetadata(null));
UserControl包含其他与Value属性(+/-)相互作用的控件,它可以正常工作。
但是我创建了DependencyProperty来绑定父页面中的值。
我注入UserControl的页面中的代码示例:
var binding = new Binding("Line.Quantity");
binding.Mode = BindingMode.TwoWay;
var numeric = new NumericBox();
numeric.SetBinding(ValueProperty, binding);
绑定在启动时有效但在我修改文本框时没有更新Line.Quantity ... Line类实现INotifyPropertyChanged并通知Quantity上的更改。
这样做的正确方法是什么?
我看过这个问题但是我无法纠正我的代码: Binding on DependencyProperty of custom User Control not updating on change