我会使用列和行填充ObjectListView,但是我的简单程序崩溃没有错误。怎么了?我的指定目标是从具有未知架构的数据库创建ListView。为什么我不知道列名,我需要动态创建方面getter。我已经尝试过ObjectListView但是我没能在ListView中添加一行。
编辑:(删除了愚蠢的代码) 我已经解决了我的问题,感谢AllColumns和RebuildColumns()的提示
foreach (TTablecolumn c in table.Columns) {
// Spalte zum Zeigen der aktuellen Werte einfügen ...
col = new OLVColumn(c.Columnname + " (ALT)", "value");
col.AspectGetter = delegate(object x) { return ((XmlStuff.Row)x).getColumnByName(c.Columnname).Value; };
col.IsEditable = false;
lv.AllColumns.Add(col);
// Spalte zum Zeigen des neuen Wertes
col = new OLVColumn(c.Columnname, "newvalue");
col.AspectGetter = delegate(object x) { return ((XmlStuff.Row)x).getColumnByName(c.Columnname).NewValue; };
col.IsEditable = true;
lv.AllColumns.Add(col);
createViewField(c);
}
lv.RebuildColumns();
答案 0 :(得分:0)
就如何编程ObjectListView而言,现有文档给出了一些答案:
OLVListItems
,如Getting Started指南中所述。所以,你需要这样的东西:
lv.AllColumns.Add(col1);
lv.AllColumns.Add(col2);
lv.RebuildColumns();
var list = new List<Model>();
for (int i = 1; i <= 10; i++)
list.Add(new Model());
lv.SetObjects(list);
但是,代码中的任何内容都不会导致程序崩溃。您将不得不寻找其他地方的崩溃来源。