如何将单元格内容重置为“系统.DBNull”

本文关键字:系统 DBNull 单元格 | 更新日期: 2023-09-27 18:34:07

我有一个WPF DataGrid它有一个DataTable作为它的ItemsSource。网格仅用于double值。但是,对于某些单元格,未指定任何数据,因此可以null值。(实际上类型是DBNull)。这一切都可以正常工作,直到我开始编辑一个单元格,然后决定我不希望该单元格中的任何值,然后尝试将其留空并继续。DataGrid不允许我这样做。如何让它以某种方式工作,以便我能够根据需要将初始null值重置为单元格?

如何将单元格内容重置为“系统.DBNull”

您必须使用值转换器...因此,如果单元格为空,则可以将该值设置为 DBNull。但我认为您必须手动定义列...

在 XAML 中:

<Window xmlns:conv="PathToConverter">
<Window.Resources>
    <conv:ValueConverter x:Key="valueConverter" />
</Window.Resources>
...
    <DataGrid.Columns>
        <DataGridTextColumn Header=""
                            Binding="{Binding doubleValue
                                    , Converter={StaticResource valueConverter}
                                    , Mode=TwoWay}"/>
        ...
    </DataGrid.Columns>
...
</Window>

转换器类必须实现IValueConverter接口

您在验证方面遇到问题吗?

否则,我相信只有"Esc"-ing会取消当前的编辑。