如何检查任何行是否无效?

时间:2015-10-18 09:16:19

标签: c# wpf validation xaml datagrid

我注意到在我的网格列中输入一个非数字绑定到整数类型的属性会导致单元格以红色边框为边界,并且该行在最左边有一个感叹号。请注意,我还没有明确地实现它 - 这是默认行为。

在查看了网格的不同属性,源项目,单元格以及没有的内容之后,我无法找到任何可以给我一个直接布尔值的东西,告诉我任何单元格都填写错误但是。

如何检查是否有任何行/单元格(可能是哪一行)被无效填充?

我已经检查了{{3}}而没有变得更聪明。我已经玩过下面的代码,但方法中的断点从未被击中过。

背后的代码

public class DonkeyValidator : ValidationRule
{
  public override ValidationResult Validate(object value, CultureInfo cultureInfo)
  {
    if (value is Donkey)
      return ValidationResult.ValidResult;
    return new ValidationResult(false, "Not a donkey!");
  }
}

标记

<DataGrid AutoGenerateColumns="False" ...>
  <DataGrid.RowValidationRules>
    <dispatcher:DonkeyValidator ValidationStep="UpdatedValue" />
  </DataGrid.RowValidationRules>
  <DataGrid.Columns> ... </DataGrid.Columns>
</DataGrid>

请注意,我并未向用户寻找高级反馈策略。我有保存按钮,我希望检查是否应该继续或停止 OnClick 方法。

1 个答案:

答案 0 :(得分:0)

我使用普通网格做过一次,但AFAIK可以在DataGrids上使用。请参阅this blog

如果这不起作用,您可以手动搜索this question中的显示。