ObjectListviewを使用して列のチェックボックスを表示していますが、問題があります。ObjectListviewチェックボックスの列は、クリックすると状態が変化しません。
私のモデルは、このようなものです:(Diem, DSNgayHoc[0], DSNgayHoc[1], ...)
:
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; }
}
は、私はこのようなリストビューを作成します。そして私はすべての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();
すべてのチェックボックスは表示されましたが、それらをクリックしたときの状態は変更されませんでした。 (常に正方形のボックス)。 currentValueとnewValueを変更するためにChangingSubItemイベントを処理しようとしましたが、運はありませんでした。助けてください!
私の英語については残念です。
このチェックボックスは、CoHocの初期状態を正しく反映していますか? –
いいえ.CoHocの初期値はfalseで、チェックボックスは正方形でチェックされていますが、変更できません。 –
ObjectListViewに追加しているHocVienLopDTOオブジェクトに、実際にDSNgayHocリストに項目があり、NULLでも空でもないことは確かですか? 'this.lop'をOLVに追加していますか?おそらく1つのモデルオブジェクトを追加するだけではありませんか? 「四角い」チェックボックスは、OLVがAspectNameの背後にある値にアクセスする際に問題があることを示します。 –