相关疑难解决方法(0)

将通用List/Enumerable转换为DataTable?

我有几个返回不同通用列表的方法.

在.net中存在任何类静态方法或将任何列表转换为数据表的任何东西?我唯一可以想象的是使用Reflection来做到这一点.

如果我有这个:

List<Whatever> whatever = new List<Whatever>();
Run Code Online (Sandbox Code Playgroud)

(下一个代码当然不起作用,但我想有可能:

DataTable dt = (DataTable) whatever;
Run Code Online (Sandbox Code Playgroud)

c# generics datatable list

245
推荐指数
13
解决办法
40万
查看次数

如何实现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(); …
Run Code Online (Sandbox Code Playgroud)

c# sorting datagridview

15
推荐指数
2
解决办法
3万
查看次数

标签 统计

c# ×2

datagridview ×1

datatable ×1

generics ×1

list ×1

sorting ×1