我有以下课程:
public class people
{
public string name { get; set; }
public string hobby { get; set; }
}
我想要显示如下列表:
no | name | hobby
-----------------------
01 | kim | tv
02 | kate | pc
03 | kim | tv
04 | kate | pc
我知道实现这一目标的唯一方法是将人类改为
public class people
{
public string no{ get; set; }
public string name { get; set; }
public string hobby { get; set; }
}
并循环List<people>
以设置每个no
属性。
是否有更好的方法来添加索引编号列?
答案 0 :(得分:6)
是的,您可以通过像这样处理'FormatRow'事件来实现您想要的目标:
objectListView1.FormatRow += delegate(object sender, FormatRowEventArgs args) {
args.Item.Text = args.RowIndex.ToString();
};
这将显示ObjectListView的第一列上从零开始的索引。如果您希望它显示为01,02 ...您可以指定格式字符串和偏移量,如:
args.Item.Text = (args.RowIndex + 1).ToString("D2");
作为旁注:使用AspectGetter(这将更加优雅)不可能实现这一点,因为在调用时,该行尚未添加到OLV,因此没有索引信息。
// !!! won't work !!!
indexColumn.AspectGetter += delegate(object rowObject) {
return objectListView1.IndexOf(rowObject).ToString();
};