TreeListView
控件是一個第三方控件,它是 ObjectListView
控件的一個擴展,用于在 WinForms 應用程序中顯示具有樹形結構的列表視圖
首先,確保已經安裝了 ObjectListView
控件。如果沒有,請訪問 http://objectlistview.sourceforge.net/cs/index.html 下載并安裝。
在你的 WinForms 項目中,從工具箱中添加 TreeListView
控件到你的窗體上。
為 TreeListView
控件添加列。例如:
this.treeListView1.Columns.Add(new System.Windows.Forms.ColumnHeader());
this.treeListView1.Columns.Add(new System.Windows.Forms.ColumnHeader());
this.treeListView1.Columns[0].Text = "Name";
this.treeListView1.Columns[0].Width = 150;
this.treeListView1.Columns[1].Text = "Value";
this.treeListView1.Columns[1].Width = 150;
TreeListView
的數據源。例如:public class MyItem
{
public string Name { get; set; }
public int Value { get; set; }
}
TreeListView
添加數據:List<MyItem> items = new List<MyItem>
{
new MyItem { Name = "Item 1", Value = 5 },
new MyItem { Name = "Item 2", Value = 3 },
new MyItem { Name = "Item 3", Value = 8 }
};
this.treeListView1.Roots = items;
TreeListView
的 ColumnClick
事件添加事件處理程序,以便在用戶單擊列標題時對數據進行排序:this.treeListView1.ColumnClick += TreeListView1_ColumnClick;
TreeListView1_ColumnClick
事件處理程序,對數據進行排序:private void TreeListView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
// 獲取當前列的索引
int columnIndex = e.Column;
// 根據列索引對數據進行排序
if (columnIndex == 0)
{
this.treeListView1.Roots = this.treeListView1.Roots.OrderBy(x => ((MyItem)x).Name).ToList();
}
else if (columnIndex == 1)
{
this.treeListView1.Roots = this.treeListView1.Roots.OrderBy(x => ((MyItem)x).Value).ToList();
}
}
現在,當用戶單擊 TreeListView
的列標題時,數據將根據所選列進行排序。注意,這個示例僅適用于簡單的排序。如果需要更復雜的排序功能,可以使用 ObjectListView
控件的 Sort()
方法。