Wpf 如何从codebehind设置ValidateSondaErrors

Wpf 如何从codebehind设置ValidateSondaErrors,wpf,Wpf,在WPF中,如何为控件(例如文本框)上的绑定设置ValidateSondaErrors属性?这可能吗 谢谢 它只是类的一个属性。您可以在代码中构造绑定,设置属性并在文本框上使用 您可以使用来获取现有绑定,但一旦它们被使用,就无法对其进行修改…这只是类的一个属性。您可以在代码中构造绑定,设置属性并在文本框上使用 您可以使用来获取现有绑定,但一旦它们被使用,就无法对其进行修改…请记住,validatesOnDaerRors是绑定的属性,而不是控件的属性 因此,请查找控件的正确绑定(在我的示例中为Te

在WPF中,如何为控件(例如文本框)上的绑定设置ValidateSondaErrors属性?这可能吗


谢谢

它只是类的一个属性。您可以在代码中构造绑定,设置属性并在
文本框上使用


您可以使用来获取现有绑定,但一旦它们被使用,就无法对其进行修改…

这只是类的一个属性。您可以在代码中构造绑定,设置属性并在
文本框上使用


您可以使用来获取现有绑定,但一旦它们被使用,就无法对其进行修改…

请记住,
validatesOnDaerRors
是绑定的属性,而不是控件的属性

因此,请查找控件的正确绑定(在我的示例中为TextProperty dependency属性)

试试这个:

System.Windows.Data.BindingExpression binding = this.textBox1.GetBindingExpression(System.Windows.Controls.TextBox.TextProperty);
binding.ParentBinding.ValidatesOnDataErrors = true;

请记住,
validateSondaErrors
是绑定的属性,而不是控件的属性

因此,请查找控件的正确绑定(在我的示例中为TextProperty dependency属性)

试试这个:

System.Windows.Data.BindingExpression binding = this.textBox1.GetBindingExpression(System.Windows.Controls.TextBox.TextProperty);
binding.ParentBinding.ValidatesOnDataErrors = true;

我试图在控件的lostfocus事件中将ValidateSondaErrors设置为true,但它抛出了一个异常,表示绑定在使用后无法更改。这有什么办法吗?谢谢您可以创建一个新的绑定对象,然后使用SetBinding方法将其与正确的DependencyProperty(例如TextProperty)相关联,正如H.B.所说。@DukeCyrillus您应该在设置
绑定的同时设置
验证数据错误
,不在
LostFocus
event@DukeCyrillus:正如我已经说过的,您可以构造并设置绑定,如果需要,您可以从旧绑定对象传输属性…我不希望某些控件验证,除非它们至少被访问过一次,这就是为什么我尝试在LostFocus事件中重设绑定。不确定是否有更好的方法,但创建一个新绑定并将其重新设置为属性似乎已经奏效了!非常感谢。我试图在控件的lostfocus事件中将ValidateSondaErrors设置为true,但它抛出了一个异常,表示绑定在使用后无法更改。这有什么办法吗?谢谢您可以创建一个新的绑定对象,然后使用SetBinding方法将其与正确的DependencyProperty(例如TextProperty)相关联,正如H.B.所说。@DukeCyrillus您应该在设置
绑定的同时设置
验证数据错误
,不在
LostFocus
event@DukeCyrillus:正如我已经说过的,您可以构造并设置绑定,如果需要,您可以从旧绑定对象传输属性…我不希望某些控件验证,除非它们至少被访问过一次,这就是为什么我尝试在LostFocus事件中重设绑定。不确定是否有更好的方法,但创建一个新绑定并将其重新设置为属性似乎已经奏效了!非常感谢。绑定在使用后无法更改。绑定在使用后无法更改。