gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 01:09:01 25 4
gpt4 key购买 nike

只是一个简短的问题:
在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com