我有一个 MVVM 模式的程序,我有一个包含一些对象的视图,其中一个是一个 Value TextBox,它在写入文本时会发生 ValidatesOnDataErrors。
此外,我有一个绑定到它的 IsEnabled 属性,该属性根据我所做的某些条件在 ViewModel 上发生了变化。
当 IsEnabled 的绑定属性为 False 时,我希望能够消除 ValidatesOnDataErrors(使其为 False),我该怎么做?
<StackPanel>
.....
<TextBox Text="{Binding Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,ValidatesOnDataErrors=True}" IsEnabled="{Binding isValueFieldEnable}"/>
.....
</StackPanel>
谢谢你。
正如@Il Vic 所建议的,这个验证逻辑应该在视图模型类中实现。
您不会更改ValidatesOnDataErrors
视图中绑定的属性。相反,您应该确保您的视图模型始终处于有效状态,并且在数据绑定属性返回 falseValue
时不会返回任何错误isValueFieldEnable
。
视图中的绑定始终相同。您的视图模型应该定义该Value
属性是否设置为有效值。当isValueFieldEnable
为假时,该属性应始终被认为是有效的。这就是你的验证逻辑。这应该在您的视图模型类中实现,而不是在您的视图中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句