【问题标题】:Check error state of WPF DataGrid检查 WPF DataGrid 的错误状态
【发布时间】:2011-10-27 14:29:49
【问题描述】:
我有一个绑定到零件集合的数据网格。 Part 的属性之一是 Quantity,一个整数,数据网格中的一个文本框绑定到这个数量字段。当用户在此框中输入一些垃圾数据(任何非整数)时,验证开始,该框以红色突出显示,并出现行错误消息。当数据网格处于该状态时,我希望禁用“保存”按钮,但我想不出任何方法来获取此信息。代码隐藏中的 Validation.GetHasError 返回 false,并且数量字段在我的视图模型中显示为 0。我该怎么做?
【问题讨论】:
标签:
wpf
validation
xaml
datagrid
【解决方案1】:
对于这种情况,我在我的视图模型中使用 wrapperproperty 和 IDataErrorInfo。如果你有一个整数属性并且 wpf 不能将输入转换为整数 - 你会得到一个 BindingErrorException 并且它永远不会命中视图模型。
public string MyQuantity {get ... set ...}
然后,您可以轻松地使用 CanSaveCommandExecute 方法检查视图模型中 IDataErroInfo 的 Error 属性。这样做的好处是您在视图模型中拥有所有信息和控制权。