【问题标题】:WPF Datagrid Row ValidationWPF Datagrid 行验证
【发布时间】:2012-12-09 07:45:53
【问题描述】:

WPF 4.0 DataGrids 中似乎存在错误。

我正在我的对象上实现IDataErrorInfo,并且我有一个数据网格绑定到的ObservableCollection。我在列上设置了ValidatesOnDataErrors=True,但在行上没有设置任何内容。我有UpdateSourceTrigger="PropertyChanged"

验证在逐个单元格级别上完美运行。但是,当您使一个单元格无效时,转到任何其他单元格,然后返回无效单元格并输入有效数据,该单元格变为有效,但该行在应该有效时仍然无效。

【问题讨论】:

  • 我也有同样的问题!
  • 树人,同样的 wpf 问题,还没有发布代码。无论如何,这对于一部电影来说都是一个糟糕的标题。 :D 你们有人想过发布一些代码或 xaml 吗?
  • 你试过INotifyDataErrorInfo吗?据我所知,此界面是通知验证错误的推荐方式。
  • 我的“超级”解决方案是关闭行验证,因为只进行单元格验证就足够了,并且没有任何模棱两可的行为。
  • 虽然更改单元格的属性更改导致获取 IDataErrorInfo 的 HasError?

标签: wpf validation wpfdatagrid


【解决方案1】:

在一般属性验证中,将在源更新后对其进行验证,但在 RowValidation 的情况下,您需要指定 RowValidationRule 以执行 RowValidation

 <DataGrid.RowValidationRules>
       <DataErrorValidationRule ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue" />
 </DataGrid.RowValidationRules>

现在DataGrid 将验证行,您也可以提供RowValidationErrorTemplate 以自定义格式显示错误。

【讨论】:

    【解决方案2】:

    有同样的问题。对我来说,解决方法是在验证规则上设置 ValidatesOnTargetUpdated="True",这似乎会在每次更新控件时强制进行另一次验证。

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 2011-02-22
      • 2011-05-05
      • 2015-10-15
      • 2011-07-03
      相关资源
      最近更新 更多