gpt4 book ai didi

c# - 验证取消 UpdateSourceTrigger 时如何调用 CanExecute

转载 作者:行者123 更新时间:2023-12-03 10:44:17 28 4
gpt4 key购买 nike

我正在使用 ValidationRuleTextBox在我看来,ValidationRule工作正常。

但是,当我处于 Command 的 canExecute 方法的状态时,就会出现问题。 (在 Button 上,在这种情况下)返回 true(Button 已启用),然后用户更改 TextBox 的内容所以ValidationRule返回错误 ValidationResult .这导致 ViewModel 属性绑定(bind)到 Button.Text没有被更新,这意味着 canExecute 方法仍然认为结果是好的并返回 true。

那么 - 尽管 ValidationResult 是错误的,我如何才能更新有问题的 ViewModel 属性?还是有另一种方法来做这一切?

编辑:这是我的 TextBox 的 XAML :

<TextBox HorizontalAlignment="Left" Margin="67,50,0,0" VerticalAlignment="Top" Width="27">
<TextBox.Text>
<Binding Path="MachineNo" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:MachineNoValidate/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>

最佳答案

在进行了更多研究之后,该解决方案似乎正在实现 IDataErrorInfo我的 ViewModel 上的界面。然后我可以完全访问 TextBox 的当前内容通过绑定(bind)属性。

这是新的 XAML:

<TextBox HorizontalAlignment="Left" Margin="67,50,0,0" VerticalAlignment="Top" Width="27"
Text="{Binding MachineNo, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"/>

仅限 this[]需要实现; WPF 不使用 Error属性(property)。

关于c# - 验证取消 UpdateSourceTrigger 时如何调用 CanExecute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34927858/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com