c# – DataGridView在更改Checkbox值后直接更新数据源

我有一个绑定到List< MyObject>的System.Windows.Forms DataGridView.
MyObject类包含一个布尔属性,该属性绑定到DataGridView中的DataGridViewCheckboxCell.

public class MyObject
{
    public decimal DefaultValue {get; set; }
    public bool HasCustomValue {get;set; }
    public decimal CustomValue {get;set; }
    public decimal CurrentValue
    {
        get
        {
            return HasCustomValue
                ? CustomValue
                : DefaultValue;
        }
}

如果我更改HasCustomValue的值,另一个(只读)属性CurrentValue也会更改它的值.
这是通过实现INotifyPropertyChanged事件来完成的(为简单起见,我在源代码示例中留下了那部分)

如果我从DataGridView外部更改了HasCustomValue,则绑定到CurrentValue的列会立即更新.
但是,如果用户启用/禁用复选框,则基础数据源中的HasCustomValue不会更改,除非他通过单击鼠标或按TAB键离开列.

有没有办法在更改复选框值后强制网格直接更新数据源?

如果我绑定一个控件属性我有能力将DataSourceUpdateMode设置为Windows.Forms.DataSourceUpdateMode.OnPropertyChanged但我没有在DataGridView中找到类似的东西

解决方法:

我假设你正在使用bindingsource然后在Check Box Click事件/编辑做,

    BindingSource.EndEdit()
上一篇:电机驱动MCU通用功能和技术点解析


下一篇:Ethernet/IP以太网接M12 X-Coded 协议:port1(Ethernet连接)