2013-04-23 40 views
3

我有以下類:如何使用ObjectListView顯示包含當前行索引的列?

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

很高興有這個內置的未來! – banging 2013-04-23 13:28:43

回答

4

是的,你可以達到你想要的東西通過處理'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(); 
}; 
相關問題