在视图模型中显示绑定验证结果



我学习了微软关于在WPF中实现绑定验证的简短教程,它运行得很好。

然而,我需要在视图模型上公开验证的结果,这样我的应用程序就可以阻止用户前进,但我看不到实现这一点的方法。

我的控件的XAML如下,StartDateRule被定义为继承自ValidationRule的类

<controls:DateInputBox
Grid.Column="2"
Grid.Row="3"
Height="28"
HorizontalAlignment="Left"
Watermark=""
Width="110"
VerticalAlignment="Center">
<controls:DateInputBox.SelectedDate>
<Binding Path="SelectedDate">
<Binding.ValidationRules>
<local:StartDateRule/>
</Binding.ValidationRules>
</Binding>
</controls:DateInputBox.SelectedDate>
</controls:DateInputBox>

我尝试在视图模型中创建StartDateRule类的实例,并绑定到该实例。其想法是,我可以在视图模型上公开一些Validate()方法,该方法将调用规则上的Validate()方法。但我似乎无法创建这种绑定。我不确定这是因为我没有正确的语法,还是因为这是不可能的。

我读了很多关于使用INotifyDataErrorInfo接口的内容,但这似乎有很多的样板代码,我找不到关于这方面的好的官方文档。

我努力实现的目标可能实现吗?

您不会在视图模型中创建验证规则的实例。如果你有一个视图模型,你应该在那里实现你的应用程序逻辑,这也适用于验证逻辑。

这意味着您应该实现INotifyDataErrorInfo接口,而不是在视图中使用验证规则。请参阅这篇博客文章,了解有关WPF中数据验证的更多信息。

您将在这里和这里找到一个如何实现接口的示例。

相关内容

  • 没有找到相关文章