我使用ObjectListview来显示列的复选框,但有一个问题。ObjectListview复选框列没有改变状态,当点击
我的模式是这样的:
public class HocVienLopDTO
{
public HocVienDTO HocVien { get; set; }
public double Diem { get; set; }
public List<NgayHocDTO> DSNgayHoc { get; set; }
}
public class NgayHocDTO
{
public DateTime Ngay { get; set; }
public bool CoHoc { get; set; }
}
我想创建这样一个ListView:(Diem, DSNgayHoc[0], DSNgayHoc[1], ...)
。我想使用所有DSNgayHoc列的复选框来显示它的CoHoc属性的值。所以我动态生成这样的列:
this.lstvDiemDanh.UseSubItemCheckBoxes = true;
List<OLVColumn> colList = new List<OLVColumn>();
for (int i = 0; i < this.lop.DSNgayHoc.Count; i++)
{
OLVColumn col = new OLVColumn();
col.IsHeaderVertical = true;
col.CheckBoxes = true;
col.AspectName = string.Format(string.Format("DSNgayHoc[{0}].CoHoc", i));
col.Text = this.lop.DSNgayHoc[i];
col.Width = 20;
col.IsEditable = true;
colList.Add(col);
}
this.lstvDiemDanh.AllColumns.AddRange(colList);
this.lstvDiemDanh.RebuildColumns();
所有复选框显示正常,但他们的状态没有改变,当我点击它们。 (总是方框)。我试图处理ChangingSubItem事件来改变currentValue和newValue,但没有运气。请帮忙!
对不起,我的英语。
复选框是否正确反映了CoHoc的初始状态? –
编号CoHoc的初始值为false,复选框由方块检查,我无法更改它! –
您确定添加到ObjectListView的HocVienLopDTO对象实际上在DSNgayHoc列表中包含项目,并且它不为NULL或为空吗?你将'this.lop'加入OLV吗?你可能不仅仅添加一个模型对象? “方形”复选框表示OLV在访问AspectName后面的值时遇到问题。 –