我们有一个自定义 TextBox(继承 TextBox),我们想将 TextProperty 的 Binding 的 UpdateSourceTrigger 值更改为 Explicit。在 Silverlight 中,只有三个值,即 Default、Explicit 和 PropertyChanged。
在控件的代码中是否有任何常见的方法来做到这一点?
我们有一个自定义 TextBox(继承 TextBox),我们想将 TextProperty 的 Binding 的 UpdateSourceTrigger 值更改为 Explicit。在 Silverlight 中,只有三个值,即 Default、Explicit 和 PropertyChanged。
在控件的代码中是否有任何常见的方法来做到这一点?
我不这么认为。
我正在试验这个:
private void CustomTextBox1_OnLoaded(object sender, RoutedEventArgs e)
{
TextBox tb = sender as TextBox;
if (tb != null)
{
var b = tb.GetBindingExpression(TextBox.TextProperty);
var p = b.ParentBinding;
p.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; /* ERROR */
}
}
在标记为“错误”的行上引发了异常:Binding cannot be changed after it has been used.
我不知道您如何更早地访问 Text 属性的绑定。
在 xaml 中设置它有什么问题?