【问题标题】:WPF validation 'before' setting value or issuing commandWPF 验证“之前”设置值或发出命令
【发布时间】:2011-04-25 02:40:53
【问题描述】:

您好,

我对 WPF 比较陌生,并且遇到了与使用 DataGrid 控件进行验证有关的问题。我已阅读这篇文章 (http://msdn.microsoft.com/en-us/magazine/ff714593.aspx),其中涵盖了三种不同的验证方式,但似乎都没有解决如何防止设置值或调用在执行所有验证之前撤消/重做命令。

我想确保只能在单元格中输入正数。我设置了一个验证规则来检查单元格是否包含负数,并且我处理 DataGrid 的 CellEditEnding 事件以了解何时实际更改模型层中使用的数字。问题是在验证规则之前调用了 CellEditEnding。当验证规则发现问题时,模型中的数字已经设置好了。我需要的是 CellEditEnded,但似乎这个事件只存在于 Silvelight 版本的 DataGrid 中。

有什么想法吗?

谢谢

【问题讨论】:

    标签: wpf validation mvvm datagrid undo-redo


    【解决方案1】:

    数据网格是一个棘手的问题,而且相当复杂。我认为在这种情况下,我可能会尝试更改绑定到的属性的“setter”。如果用户输入无效值,则抛出异常。数据网格支持显示带有验证错误(红色边框)的无效单元格,以便用户查看哪些单元格/行有问题。

    这并不理想,但它可能会起作用。

    【讨论】:

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