我有一个文本框,例如通过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/>
此特定规则检查是否已将任何值输入到文本框中。 但是,仅当用户输入某些文本然后将其删除时,才会激活此规则。 大多数情况下,当用户遗漏一个空白字段时,因为他忘了填写它。
那么,在我允许用户实际保存数据之前,我怎样才能从视图模型中强制检查所有验证规则?
如果我能够以某种方式同时对所有控件进行操作,那也很好。
谢谢你。
答案 0 :(得分:-1)
您可以强制规则在加载窗口后自动更新,以便空白字段指示错误:
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