【问题标题】:Triggering data validation in WPF在 WPF 中触发数据验证
【发布时间】:2009-10-13 16:37:14
【问题描述】:

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

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

一切正常,验证仅在用户按下按钮时触发,我在此处更新数据源。

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

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

【问题讨论】:

  • 您能否提供实际更新数据源的代码,以及更改用户控件可见性的 XAML/代码?可见性变化是否有可能无意中调用更新代码?
  • 你能告诉我们按钮的 xaml 吗?

标签: wpf validation idataerrorinfo


【解决方案1】:

这是我正在使用的代码

文本框的绑定

<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();});
    }

【讨论】:

    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多