[英]How do i force wpf ValidationRules binding?
我有一個文本框,例如通過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/>
此特定規則檢查是否在文本框中輸入了任何值。 但是,僅當用戶輸入一些文本然后將其刪除時,才會激活此規則。 大多數情況下,當用戶留下空白字段時,這是因為他忘記填寫該字段。
那么,在允許用戶實際保存數據之前,如何從視圖模型強制檢查所有驗證規則?
如果我能以某種方式一次對所有控件進行操作,那也很好。
感謝你。
您可以在加載“窗口”后強制規則自動更新,以便空白字段指示錯誤:
public void Window_Loaded(object sender, RoutedEventArgs e)
{
textbox1.GetBindingExpression(TextBox.TextProperty).UpdateSource();
textbox2.GetBindingExpression(TextBox.TextProperty).UpdateSource();
}
或者,您可以實現IDataErrorInfo
並更新您的Text綁定,以便其ValidatesOnDataErrors
<Binding Path="Entity.LastName" NotifyOnValidationError="True" ValidatesOnDataErrors="True">
這是有關如何實現IDataErrorInfo
的簡單示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.