在WPF中触发数据验证

时间:2009-10-13 16:37:14

标签: wpf validation idataerrorinfo

我在WPF中遇到验证问题 我有一个用户控件,它有几个文本框,绑定到datamodel 验证是使用IDataErrorInfo实现的。

我希望仅在用户按下“提交数据”按钮时才会触发验证,因此我使用UpdateSourceTrigger="Explicit"绑定了所有这些文本框。

一切正常,只有当用户按下按钮时才会触发验证,我会更新数据源。

但是可以隐藏或显示该用户控件,当我将可见性从显示/更改为隐藏然后再返回显示时,将触发验证。

有没有办法控制该阶段的验证?

1 个答案:

答案 0 :(得分:0)

这是我正在使用的代码

绑定到文本框

<TextBox
        AutomationProperties.AutomationId="StreetNameTextBoxId"
        Height="20" Margin="0,0,5,0" FontSize="12" Name="_streetNameText"
        AcceptsReturn="False" AcceptsTab="False" Focusable="True"
        Text="{Binding ElementName=_this, Path=SearchParameters.EnteredAddress, UpdateSourceTrigger=Explicit}">

执行验证和搜索的代码(与单击“搜索”按钮相关联)

 private void ExecuteSearch() { 
        _streetNameText.UpdateDataSource();
        if (ViewModel.CustomerSpecification.IsValid())
            PerformActionInBackground(delegate{PerformSearch();});
    }