我有一个绑定到List<MyObject>
.
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 事件来完成的(为了简单起见,我将那部分留在源示例中)
如果我HasCustomValue
从 DataGridView 外部更改,绑定到的列CurrentValue
会立即更新。但是,如果用户启用/禁用该复选框,HasCustomValue
则在基础数据源中不会更改,除非他通过单击鼠标或按 TAB 键离开该列。
有没有办法在更改复选框值后强制网格直接更新数据源?
如果我绑定一个控件属性,我可以将其设置为DataSourceUpdateMode
,Windows.Forms.DataSourceUpdateMode.OnPropertyChanged
但我在 DataGridView 中没有找到类似的东西