4

我有以下课程:

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属性。

有没有更好的方法来添加索引号列?

4

1 回答 1

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();
};
于 2013-04-23T09:18:40.810 回答