【发布时间】:2011-04-27 20:57:24
【问题描述】:
在普通的 ListView 中,我通常会动态生成列,例如:
var list = new List<ColumnNameSize>();
list.Add(new ColumnNameSize("Computer Name", 0));
list.Add(new ColumnNameSize("Full Computer Name", 150));
list.Add(new ColumnNameSize("Migrated", 150));
list.Add(new ColumnNameSize("Disabled", 0));
list.Add(new ColumnNameSize("Disabled & Not Migrated", 150));
generateListView(listViewObjects, list);
public static void generateListView(ListView varListView, List<ColumnNameSize> nameSizeList) {
varListView.ClearColumns();
foreach(ColumnNameSize nameSize in nameSizeList) {
varListView.AddColumn(nameSize.ColumnName, nameSize.ColumnSize);
}
}
我将如何在ObjectListView 中做到这一点。我尝试了多种组合:
public void generateListView(ObjectListView varListView, List<ColumnNameSize> nameSizeList) {
ArrayList myArrayList = new ArrayList();
foreach (ColumnNameSize nameSize in nameSizeList) {
OLVColumn columnHeader = new BrightIdeasSoftware.OLVColumn();
columnHeader.Width = nameSize.ColumnSize;
columnHeader.Text = nameSize.ColumnName;
myArrayList.Add(columnHeader);
varListView.AllColumns.Add(columnHeader);
}
Object columnsHeader = myArrayList.ToArray();
varListView.Columns.AddRange( columnsHeader);
}
但似乎没有一个工作......
【问题讨论】:
-
好像你添加了两次列;一次来自
AllColumns.Add(),然后再次来自Columns.AddRange() -
我知道,这就是我尝试过的......我用 .Add 做到了,但它没有显示出来......所以我尝试使用 AddRange 但它需要 OLVColumn[] 而不是对象。
-
而不是
Columns.AddRange()调用RebuildColumns()从AllColumns重建它们
标签: c# objectlistview