如果 IsEnabled 属性为 False WPF,则禁用 ValidatesOnDataErrors

猎户座

我有一个 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>

谢谢你。

毫米8

正如@Il Vic 所建议的,这个验证逻辑应该在视图模型类中实现。

您不会更改ValidatesOnDataErrors视图中绑定属性。相反,您应该确保您的视图模型始终处于有效状态,并且在数据绑定属性返回 falseValue不会返回任何错误isValueFieldEnable

视图中的绑定始终相同。您的视图模型应该定义该Value属性是否设置为有效值。isValueFieldEnable为假时,该属性应始终被认为是有效的这就是你的验证逻辑。这应该在您的视图模型类中实现,而不是在您的视图中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章