2010-08-25 56 views
0

我有一个按钮限定在textblock的Validation.HasError属性上。文本块具有验证规则,用于检查用户输入的值。绑定的目的是如果用户输入了错误的数据,该按钮应该被禁用。绑定发生在验证之前

问题是ValidationRule在绑定后执行。因此,当用户输入错误的值时,绑定将检查文本块的HasError属性,该属性为FALSE,因此该按钮为Enabled。然后执行验证规则。它会导致texblock无效并且按钮被启用的情况发生逆转。

如何指定首先执行哪个(绑定和验证)?

这里的XAML:

<MultiBinding Converter="{StaticResource ButtonVisibilityConverter}" UpdateSourceTrigger="PropertyChanged" Mode="OneWay" > 
    <Binding ElementName="integerInput" Path="HasValidationError"/> 
    <Binding ElementName="doubleInput" Path="HasValidationError"/> 
    </MultiBinding> 

</Button.IsEnabled> 

我敢肯定它是不是这样的。 我正在谈论的textblock控件是一个自定义微调控件(带有两个+/-按钮的文本框)。微调器的内容绑定到视图模型中的一个属性。每次我们点击+或 - 按钮,一个命令被执行,并增加或减少文本框中的值。

回答

1

您使用哪种XAML将按钮绑定到文本框?对HasError属性的任何更改都应该触发绑定,以重新评估按钮,而不管在何种阶段进行验证。

您确定您的问题不是当HasErrors属性为false时,您希望IsEnabled属性为true并且您没有颠倒绑定中的值?