【发布时间】:2011-07-09 03:28:38
【问题描述】:
我们有一个绑定到一个可以为空的 sql 整数值的列。当用户尝试“清除”DataGrid 中的单元格时,我们会收到验证错误
“...无法转换”。
如何使其为空并将“null”值绑定到基础列?
我已经用 google 搜索了这个问题 2 天,并发现了任何东西。我试图编辑我对 HCL 的评论,但它永远无法保存。
我熟悉IValueConverters。我写了一个来处理我们的百分比(因此用户可以输入“50 %”并将其转换为“.5”)。我正在尝试做一些非常相似的事情,但是当值作为Null 返回时(我写了一个虚拟IValueConterter 来调试它),我只想将它作为Null 保存到数据库中。也许我只需要将它设置为DBNullValue?对于我认为可能具有内置属性的东西来说,这似乎需要做很多工作。我尝试在列 (DataGridBoundColumn) 上使用TargetNullValue 属性并将其设置为DBNull.Value,但它没有更改值(基于我的虚拟IValueConverter 它仍然作为常规(字符串)NULL。
我只是希望能够为这个(整数类型)列将空值保存到数据库中。
** 最新添加**
好点 HCL,我忘记了有时整个世界都不是 ADO。
我正在绑定到一个 SQL 表。有问题的列是一个int,它允许NULLs。
这些列是使用AutoGeneratingColumn 创建的,因此它基本上只是“自动”将它们连接起来(某些样式,例如右对齐在此方法中应用,但不适用于此列)。它采用这种方法,因为该应用程序几乎是“访问”替代品。我们的 CIO 要求我们从用户中删除 Access,所以这就是解决方案(创建我们自己的 MS Access)。无论如何,因为它可以打开任何表(并创建表、列等),它只是根据打开的表“自动生成”列。虽然,由于应用程序固有地知道某些列,例如 Discount_Pct,当它遇到这些列之一时,它确实会做一些“特殊的事情”(比如分配我上面描述的 IValueConverter)。虽然,就像我说的......对于这个特定的专栏,没有什么“特别”的。它只是一个“自动生成”的常规 SQL 整数(可为空)。
【问题讨论】:
-
能看到验证码吗?
-
没有。这是一个非常普通的网格。
标签: wpf binding wpfdatagrid