需要第二组眼睛。我用文本框,复选框等动态填充集线器控件......当我这样做时,我在添加数据绑定时为每个控件添加数据绑定。问题是在加载事件之后所做的任何更改都没有正确注册。基本上根本没有注册。我的对象实现了iNotifyPropertyChanged。以下是一些希望能更好地解释这种情况的片段。
动态控件创建和数据绑定
var b = new Binding
{
Mode = BindingMode.TwoWay,
Source = detail.Answer
};
var txtBx = new TextBox() { Width = 260, Height = 18, Margin = new Thickness(0, 0, 0, 5) };
txtBx.SetBinding(TextBox.TextProperty, b);
对象属性
public string Answer
{
get
{
return _answer;
}
set
{
if (value == _answer) return;
_answer = value;
OnPropertyChanged(nameof(Answer));
}
}
属性更改方法
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
我错过了什么?始终欣赏反馈
答案 0 :(得分:1)
你需要设置绑定路径,我总是使用静态SetBinding:
var binding = new Binding
{
Source = _sectionHeaderSlider,
Mode = BindingMode.TwoWay,
Path = new PropertyPath("Value"),
};
BindingOperations.SetBinding(ScrollTransform, Windows.UI.Xaml.Media.CompositeTransform.TranslateXProperty, binding);