簡體   English   中英

我如何強制WPF ValidationRules綁定?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM