TwoWay 绑定不更新控件
TwoWay binding doesn't update controls
我能想到的最简单的例子如下:
TextBox tb1 = new TextBox();
TextBox tb2 = new TextBox();
this.Content = new StackPanel() { Children = { tb1, tb2 } };
Binding binding = new Binding("Text") {
Mode = BindingMode.TwoWay,
Source = tb1,
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
tb2.SetBinding(TextBlock.TextProperty, binding);
当我启动我的应用程序时,我希望文本框在其他文本框的文本更改时立即更新它们的文本。但是在更改其他文本框时,源文本框和目标文本框都不会更新其文本。 这种奇怪的行为是否有原因,是否有解决方法?
(由于特定原因,我无法使用 XAML,绑定对我来说一直有效)
更新:第一次更改其中一个文本框的文本时,输出window表示线程0x### # 已退出,代码为 259 (0x103)。
你用错了DependencyProperty
。
tb2.SetBinding(**TextBlock**.TextProperty, binding);
复制的代码在使用 TextBox.TextProperty
时按预期工作
我能想到的最简单的例子如下:
TextBox tb1 = new TextBox();
TextBox tb2 = new TextBox();
this.Content = new StackPanel() { Children = { tb1, tb2 } };
Binding binding = new Binding("Text") {
Mode = BindingMode.TwoWay,
Source = tb1,
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
tb2.SetBinding(TextBlock.TextProperty, binding);
当我启动我的应用程序时,我希望文本框在其他文本框的文本更改时立即更新它们的文本。但是在更改其他文本框时,源文本框和目标文本框都不会更新其文本。 这种奇怪的行为是否有原因,是否有解决方法?
(由于特定原因,我无法使用 XAML,绑定对我来说一直有效)
更新:第一次更改其中一个文本框的文本时,输出window表示线程0x### # 已退出,代码为 259 (0x103)。
你用错了DependencyProperty
。
tb2.SetBinding(**TextBlock**.TextProperty, binding);
复制的代码在使用 TextBox.TextProperty