我有一个名为Flagged的布尔属性的自定义对象Foo,当有人在文本框中成功输入内容时,它会更改标记为true并使用某些文本更新屏幕上的另一个文本块。问题是我可以让它在加载初始数据时工作,但是当用户成功输入内容以翻转标志时没有任何反应。
我必须在代码中执行大部分操作,并且已在我的对象Foo上实现了INotifyPropertyChanged。我的代码有什么问题?
感谢。
private Border CreateNewBorder()
{
Border b = new Border();
TextBlock tb = new TextBlock();
tb.TextAlignment = TextAlignment.Center;
b.Style = (Style)this.FindResource("myBorder");
tb.SetBinding(TextBlock.TextProperty, CreateBinding());
b.Child = tb;
return b;
}
private Binding CreateBinding()
{
Binding bind = new Binding();
bind.Source = Foo;
bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
bind.Mode = BindingMode.TwoWay;
bind.Path = new PropertyPath("Flagged");
bind.Converter = new BoolToStringConverter();
return bind;
}
答案 0 :(得分:1)
听起来你可能只是在Foo上缺少更改通知。你在Foo上实现了INotifyPropertyChanged并从Flagged setter中调用了PropertyChanged事件吗?