Mit*_*ril 4 .net c# winforms objectlistview
我有以下课程:
public class people
{
public string name { get; set; }
public string hobby { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想显示一个这样的列表:
no | name | hobby
-----------------------
01 | kim | tv
02 | kate | pc
03 | kim | tv
04 | kate | pc
Run Code Online (Sandbox Code Playgroud)
我知道要实现这一目标的唯一方法是将人们的阶级转变为
public class people
{
public string no{ get; set; }
public string name { get; set; }
public string hobby { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并循环List<people>设置每个no属性。
有没有更好的方法来添加索引号列?
是的,您可以通过处理“ FormatRow”事件来实现所需的目标,如下所示:
objectListView1.FormatRow += delegate(object sender, FormatRowEventArgs args) {
args.Item.Text = args.RowIndex.ToString();
};
Run Code Online (Sandbox Code Playgroud)
这将在ObjectListView 的第一列上显示从零开始的索引。如果希望它显示为01,02 ...,则可以指定格式字符串和偏移量,例如:
args.Item.Text = (args.RowIndex + 1).ToString("D2");
Run Code Online (Sandbox Code Playgroud)
附带说明:不可能使用AspectGetter实现这一点(这会更优雅),因为在调用它时,该行尚未添加到OLV中,因此没有索引信息。
// !!! won't work !!!
indexColumn.AspectGetter += delegate(object rowObject) {
return objectListView1.IndexOf(rowObject).ToString();
};
Run Code Online (Sandbox Code Playgroud)