【发布时间】:2014-07-19 01:37:11
【问题描述】:
我在数据绑定到对象列表的表单上有一个 DataGridView。我有几列,包括一个复选框列。要求是集合中只有一个项目可以在给定时间将数据绑定布尔属性设置为 true。数据对象名为 Interval,相关属性为 Program:
public bool Program
{
get { return _program; }
set
{
if (value)
{
Parent.Intervals.Except(new[] { this }).ForEach(interval => interval.Program = false);
}
_program = value;
OnPropertyChanged();
}
}
我的预期行为是单击数据绑定复选框会将一个 Interval 实例的 Program 属性设置为 true,并且这样做会将所有其他实例的 Program 属性设置为 false。确实会发生这种情况,但是 datagridview 没有正确更新。它将保留先前的复选框处于选中状态,并且在将单元格选中或将鼠标悬停在另一个复选框上之后,它将更新该特定复选框。
如何让数据网格视图准确地显示我的对象的状态。我信任你,DataGridView!你骗了我。我……我再也不能相信你说的任何话了。
【问题讨论】:
标签: c# winforms checkbox datagridview inotifypropertychanged