gpt4 book ai didi

wpf - 如何清除(WPF)DataGrid 中的单元格(使其获得 NULL 值)?

转载 作者:行者123 更新时间:2023-12-04 17:12:54 26 4
gpt4 key购买 nike

我们有一列绑定(bind)到一个可为空的 sql 整数值。当用户试图“清除”DataGrid 中的单元格时,我们得到验证错误

"...could not be converted".



如何使其为空并将“null”值绑定(bind)到基础列?

我已经用谷歌搜索了这个问题 2 天了,发现了什么。我试图编辑我对你 HCL 的评论,但它永远不会保存。

我熟悉 IValueConverters .我写了一个来处理我们的百分比(因此用户可以输入“50 %”并将其转换为“.5”)。我正在尝试做一些非常相似的事情,但是当值以 Null 的形式返回时(我写了一个虚拟的 IValueConterter 来调试它),我只想将它作为 Null 保存到数据库中.也许我只需要将它设置为 DBNullValue ?对于我认为可能具有内置属性的东西来说,这似乎需要做很多工作。我尝试使用 TargetNullValue列上的属性( DataGridBoundColumn )并将其设置为 DBNull.Value ,但它没有改变值(基于我的虚拟 IValueConverter 它仍然作为常规(字符串) NULL 进入。

我只是希望能够将此(整数类型)列的空值保存到数据库中。

**最新添加**

好点 HCL,我忘记了有时整个世界都不是 ADO。

我正在绑定(bind)到一个 SQL 表。有问题的列是 int允许 NULL s。

这些列是使用 AutoGeneratingColumn 创建的。 ,所以它基本上只是“自动”将它们连接起来(某些样式,例如右对齐在此方法中应用,但不适用于本专栏)。它采用这种方法,因为该应用程序几乎是“访问”替代品。我们的 CIO 要求我们从用户中删除 Access,所以这就是解决方案(创建我们自己的 MS Access)。无论如何,因为它可以打开任何表(并创建表、列等),它只是根据打开的表“自动生成”列。虽然,由于应用程序固有地知道某些列,例如 Discount_Pct,当它遇到这些列之一时,它确实会做一些“特殊的事情”(比如分配 IValueConverter 我上面描述的)。虽然,就像我说的......对于这个特定的专栏,没有什么“特别”的。它只是一个“自动生成”的常规 SQL 整数(可为空)。

最佳答案

扩展 Shayne 的自我回答后,我发现 TargetNullValue 属性可用于 DataGridBoundColumn 对象。您可以使用描述的附加逻辑 from this comment使其成为有条件的。不幸的是,该帖子没有解释如何将其逻辑与 DataGrid 相关联,所以这是我的解决方案:

<DataGrid AutoGenerateColumns="True" AutoGeneratingColumn="m_grid_AutoGeneratingColumn"/>

和...
public void m_grid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
// Make all columns nullable
((DataGridBoundColumn)e.Column).Binding.TargetNullValue = string.Empty;
}

我对这个问题感到非常沮丧。我希望这可以帮助别人。

关于wpf - 如何清除(WPF)DataGrid 中的单元格(使其获得 NULL 值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5199551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com