检查 WPF DataGrid 的错误状态

发布于 2024-11-29 10:59:21 字数 226 浏览 0 评论 0原文

我有一个绑定到零件集合的数据网格。 Part 的属性之一是 Quantity,它是一个整数,数据网格中的文本框之一绑定到该数量字段。当用户在此框中输入一些垃圾数据(任何非整数)时,验证将启动,该框以红色突出显示,并显示行错误消息。当数据网格处于该状态时,我希望禁用“保存”按钮,但我找不到任何方法来获取此信息。代码隐藏中的 Validation.GetHasError 返回 false,并且数量字段在我的视图模型中显示 0。我该怎么做?

I have a datagrid bound to a collection of Parts. One of the properties of Part is Quantity, an integer, and one of the textboxes in the datagrid is bound to this quantity field. When the user enters some garbage data into this box (any non-integer), the validation kicks in, the box is highlighted in red, and the row error message appears. When the datagrid is in that state, I want the "Save" button to be disabled, but I can't figure out any way to get this information. Validation.GetHasError in codebehind returns false, and the quantity fields display 0 in my viewmodel. How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灼疼热情 2024-12-06 10:59:21

对于这种情况,我在视图模型中使用包装器属性和 IDataErrorInfo 。如果你有一个整数属性并且 wpf 无法将输入转换为整数 - 你将得到一个 BindingErrorException 并且它永远不会命中视图模型。

public string MyQuantity {get ... set ...}

然后,您可以轻松地使用 CanSaveCommandExecute 方法来检查视图模型中 IDataErroInfo 的 Error 属性。这样做的优点是您在视图模型中拥有所有信息和控制权。

i use a wrapperproperty and IDataErrorInfo in my viewmodel for such cases. if you have a integer property and wpf cant convert the input to integer - you will get a BindingErrorException and it never hits the viewmodel.

public string MyQuantity {get ... set ...}

you can then easily use your CanSaveCommandExecute method to check the Error property of IDataErroInfo in your viewmodel. the advantage of this is that you have all information and control in your viewmodel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文