例如,我有一个通过mvvm模式绑定的文本框,如下所示:
<TextBox VerticalAlignment="Center" Grid.Column="2" Grid.Row="1" Validation.ErrorTemplate="{StaticResource ValidationErrorTemplate}">
<TextBox.Text>
<Binding Path="Entity.LastName" NotifyOnValidationError="True">
<Binding.ValidationRules>
<validations:MandatoryValidationRule/>此特定规则检查是否在文本框中输入了任何值。但是,只有当用户输入一些文本然后将其删除时,此规则才会激活。大多数情况下,当用户遗漏了一个空白字段时,这是因为他忘了填写它。
那么,在允许用户实际保存数据之前,如何从视图模型强制检查所有验证规则呢?
如果我能以某种方式同时对所有控件执行此操作,那就太好了。
谢谢你。
发布于 2014-05-18 02:14:11
加载窗口后,您可以强制规则自动更新,以便空白字段指示错误:
public void Window_Loaded(object sender, RoutedEventArgs e)
{
textbox1.GetBindingExpression(TextBox.TextProperty).UpdateSource();
textbox2.GetBindingExpression(TextBox.TextProperty).UpdateSource();
}或者,您可以实现IDataErrorInfo并更新文本绑定,使其ValidatesOnDataErrors
<Binding Path="Entity.LastName" NotifyOnValidationError="True" ValidatesOnDataErrors="True">下面是一个关于如何实现IDataErrorInfo的简单example
https://stackoverflow.com/questions/23713304
复制相似问题