![]() |
1
26
Validation.hasserror是一个附加属性,因此您可以像这样检查它的textboxMin
要在代码后面运行TextProperty的所有ValidationRules,可以获取BindingExpression并调用UpdateSource
更新 如果发生任何验证,它将采取一些步骤来实现禁用按钮的绑定。 首先,确保所有绑定都添加NotifyOnValidationError=“True”。例子
然后我们在窗口中连接一个EventHandler到Validation.Error事件。
在代码隐藏中,我们在observablecollection中添加和移除验证错误
然后我们可以将按钮的IsEnabled绑定到ValidationErrors
|
![]() |
2
6
在你拿到规则之前你需要先拿到绑定
否则可以使用BindingExpression并检查HasError属性
|
![]() |
3
1
非常感谢弗雷德里克·赫布拉德的解决方案。它也帮助了我。我也同意卢克·科滕的观点,认为它最好作为一种行为。这样就不会在视图层中混合应用程序逻辑,视图模型也不必担心只需简单地在那里进行双重应用验证。以下是我的行为学版本: 如Fredrik Hedblad所述,首先确保任何控件验证都具有binding属性NotifyOnValidationError=“True”。 这是视图逻辑。。。简单得多。。。
然后就在窗口的开始标签下面
然后对于按钮,像普通的那样绑定命令。我们将使用基本的视图模型绑定原则来使用RelayCommand禁用它。
现在,视图模型及其基本属性和命令
现在,行为
|
![]() |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
![]() |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
![]() |
Arijit · 移动画布内绘制的矩形 2 年前 |
![]() |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |