Wpf 绑定发生在验证之前
我在textblock的Validation.HasError属性上有一个按钮。textblock有一个验证规则,用于检查用户输入的值。绑定的目的是,如果用户输入错误的数据,则应禁用该按钮 问题是ValidationRule在绑定之后执行。因此,当用户键入错误的值时,绑定会检查textblock的HasError属性,该属性为FALSE,因此按钮被启用。然后执行validationrule。它会导致相反的情况,即texblock无效且按钮已启用 如何指定首先执行哪个(绑定和验证) 以下是XAML:Wpf 绑定发生在验证之前,wpf,validation,binding,button,textblock,Wpf,Validation,Binding,Button,Textblock,我在textblock的Validation.HasError属性上有一个按钮。textblock有一个验证规则,用于检查用户输入的值。绑定的目的是,如果用户输入错误的数据,则应禁用该按钮 问题是ValidationRule在绑定之后执行。因此,当用户键入错误的值时,绑定会检查textblock的HasError属性,该属性为FALSE,因此按钮被启用。然后执行validationrule。它会导致相反的情况,即texblock无效且按钮已启用 如何指定首先执行哪个(绑定和验证) 以下是XAML
我肯定不是这样的。
我说的textblock控件是一个自定义微调器(带有两个+/-按钮的textbox)。微调器的内容绑定到viewmodel中的属性。每次单击+或-按钮时,将执行一个命令,并递增或递减文本框中的值 您使用什么XAML将按钮绑定到文本框?对HasError属性的任何更改都应该触发绑定,以便在按钮上重新计算,而不管在哪个阶段执行验证 您确定您的问题不是当HasErrors属性为false时,您希望IsEnabled属性为true,并且您没有反转绑定中的值吗
<MultiBinding Converter="{StaticResource ButtonVisibilityConverter}" UpdateSourceTrigger="PropertyChanged" Mode="OneWay" >
<Binding ElementName="integerInput" Path="HasValidationError"/>
<Binding ElementName="doubleInput" Path="HasValidationError"/>
</MultiBinding>
</Button.IsEnabled>