wpf - 如何在代码隐藏中设置和获取文本框的 updatesourcetrigger?

标签 wpf textbox updatesourcetrigger

只是一个简短的问题:
在 wpf 中,如何在代码隐藏中设置和获取文本框的 updatesourcetrigger ?
谢谢

更新:
我遵循 AngleWPF 的代码:

        var bndExp = BindingOperations.GetBindingExpression(this, TextBox.TextProperty);

        var myBinding
          = bndExp.ParentBinding;

        var updateSourceTrigger = myBinding.UpdateSourceTrigger;

但我得到了异常(exception):

An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in PresentationFramework.dll Additional information: Exception has been thrown by the target of an invocation.

最佳答案

UpdateSourceTrigger 是什么意思的 TextBox ?你的意思是说UpdateSourceTriggerTextBox.TextPropertyBinding ?

例如。如果您有 TextBox命名为 myTextBox有它的Text属性绑定(bind)到某个源,然后您可以轻松 获取 它是 UpdateSourceTriggerBinding对象来自 GetBindingExpression()称呼。

   var bndExp
     = BindingOperations.GetBindingExpression(myTextBox, TextBox.Textproperty);

   var myBinding
     = bndExp.ParentBinding; 

   var updateSourceTrigger
     = myBinding.UpdateSourceTrigger;

但是 很棘手设置 UpdateSourceTrigger对于已使用的绑定(bind)。例如。在上述情况下,您将无法设置 myBinding.UpdateSourceTrigger到别的东西。当绑定(bind)对象已在使用中时,这是不允许的。

您可能需要 深度克隆 绑定(bind)对象并设置新的UpdateSourceTrigger并将其分配回 TextBox . Binding 不存在克隆类(class)。您可能必须为此编写自己的克隆代码。
  var newBinding = Clone(myBinding); //// <--- You may have to code this function.
  newBinding.UpdateSourceTrigger = UpdateSourceTrigger.Explicit;
  myTextBox.SetBinding(TextBox.TextProperty, newBinding);

或者你也可以尝试分离 现有的 Binding 并更新它并将其分配回......
  myTextBox.SetBinding(TextBox.TextProperty, null);
  myBinding.UpdateSourceTrigger = UpdateSourceTrigger.Explicit;
  myTextBox.SetBinding(TextBox.TextProperty, myBinding);

让我知道这些提示是否有帮助。

关于wpf - 如何在代码隐藏中设置和获取文本框的 updatesourcetrigger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7990137/

相关文章:

.net - 如何在资源字典中正确定义颜色?

c# - MVVM 更新源触发器

wpf - TextBox UpdateSourceTrigger = PropertyChanged - 它真的会影响性能吗?

c# - 如何使用 xaml 将数据网格绑定(bind)到 collectionviewsource

.net - 根据上下文值更改 DataGridCell 的背景颜色。 (WPF)

c# - 如何使用数据注释为 WPF 中的文本框创建输入验证?

html - 为什么这个 css 不胜过其他 css?

javascript - 文本框圆 Angular asp.net

c# - 在更新期间停止 TextBox 闪烁

silverlight - Silverlight 中的 UpdateSourceTrigger PropertyChanged?