我们有一个绑定到可为空的 SQL 整数值的列。当用户尝试在 DataGrid 中“清除”单元格时,我们会得到验证错误:“...无法转换”。如何使其为空并将“null”值绑定到底层列?我已经搜索了这个问题2天了,但没有找到任何答案。我尝试编辑我的评论给你 HCL,但它从来没有保存过。我熟悉 IValueConverters。我编写了一个处理百分比的转换器(所以用户可以输入“50%”,然后转换为“0.5”)。我正在尝试做类似的事情,但当值返回为 Null 时(我编写了一个虚拟的 IValueConterter 来调试它),我只想将其保存到数据库中作为 Null。也许我只需要将它设置为 DBNullValue?对于我认为可能具有内置属性的东西来说,这似乎是很多工作。我尝试在列(DataGridBoundColumn)上使用 TargetNullValue 属性,并将其设置为 DBNull.Value,但它没有更改值(根据我的虚拟 IValueConverter,它仍然作为常规(字符串)NULL 进入)。我只想能够将 null 值保存到此(整数类型)列的数据库中。最新添加:好的点子 HCL,我有时忘记整个世界不是 ADO。我正在绑定到 SQL 表。问题中的列是允许 NULL 的 int。这些列是使用 AutoGeneratingColumn 创建的,因此它基本上只是“自动地”连接它们(某些样式,如右对齐,是在此方法中应用的,但不适用于此列)。采用这种方法是因为该应用程序基本上是一个“Access”替代品。我们的 CIO 要求我们从用户中删除 Access,所以这就是解决方案(创建我们自己的 MS Access)。无论如何,由于它可以打开任何表格(并创建表格、列等),因此它只是基于打开的表格“自动生成”列。虽然,由于有一些应用程序本身知道的列,例如 Discount_Pct,当遇到这些列之一时,它确实会做一些“特殊的事情”(例如分配我上面描述的 IValueConverter)。虽然,正如我所说... 对于这个特定的列,没有任何“特殊”的处理。它只是一个常规的 SQL 整数(可为空),是“自动生成”的。