bsh*_*52s 15 c# sorting datagridview
我以编程方式将列添加到DataGridView,然后绑定到列表.默认情况下,列的SortMode是自动的.但是,当我运行我的应用程序时,单击标题无效.向上/向下箭头未显示.从阅读MSDN,关于自动排序的说法并不多.他们详细介绍了程序化排序.所以,我假设自动方式应该很容易.MSDN继续说" 除非使用列标题进行选择,否则单击列标题会自动按此列对DataGridView进行排序,并显示一个指示排序顺序的字形." 这到底是什么意思呢?我可以设置与排序冲突的网格属性吗?我错过了什么?
AutoGenerateColumns = false;
AllowUserToAddRows = false;
AllowUserToDeleteRows = false;
AllowUserToResizeRows = false;
AllowUserToResizeColumns = false;
ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
ReadOnly = true;
MultiSelect = false;
RowHeadersVisible = false;
SelectionMode = DataGridViewSelectionMode.FullRowSelect;
CellBorderStyle = DataGridViewCellBorderStyle.None;
DataGridViewTextBoxColumn idColumn = new DataGridViewTextBoxColumn();
idColumn.HeaderText = "ID";
idColumn.DataPropertyName = "IDNumber";
DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn();
nameColumn.HeaderText = "Name";
nameColumn.DataPropertyName = "Description";
DataGridViewTextBoxColumn lastModifiedColumn = new DataGridViewTextBoxColumn();
lastModifiedColumn.HeaderText = "Last Modified";
lastModifiedColumn.DataPropertyName = "Date";
Columns.Add(idColumn);
Columns.Add(nameColumn);
Columns.Add(lastModifiedColumn);
List<IMyObject> bindingList = GetMyList();
DataSource = bindingList;
Run Code Online (Sandbox Code Playgroud)
Chr*_*ett 22
我们使用BindingListView将List <T>绑定到DataGridViews,它对我们来说非常有效.
这是一个创建对象列表视图的简单示例(在C#中):
List<Customer> customers = GetCustomers();
BindingListView<Customer> view = new BindingListView<Customer>(customers);
dataGridView1.DataSource = view;
Run Code Online (Sandbox Code Playgroud)
有关DGV排序和数据绑定的更多详细信息,请访问/sf/answers/1256680351/.
如果您不想添加繁重的内容,可以尝试使用SortableBindingList <T>(带更新)的此实现.
根据他们的基准测试,两者都可以开箱即用,BindingListView比DataViews更快.
| 归档时间: |
|
| 查看次数: |
32099 次 |
| 最近记录: |