我有一个绑定到datagridview的数据表。但是,列的排序搞砸了。我已经为每个字段创建了一个列标题,其中包含dataproperty名称。我把它安排在设计师的视野中。但是,如果我运行程序列标题不遵循我的安排。 = _ =。有谁知道如何解决这个问题....
EDIT :: 我试过这种方法。好吗?
void SortDataGridViewColumns(DataGridView dgv)
{
var list = from DataGridViewColumn c in dgv.Columns
orderby c.Index
select c;
int i = 0;
foreach (DataGridViewColumn c in list)
{
c.DisplayIndex = i++;
}
}
***我在这里有这个,但我用的是Index而不是Headertext。案例已关闭! LOL
答案 0 :(得分:7)
我认为您需要在运行时更改列顺序。
来自MSDN:
使用DataGridView显示数据源中的数据时,数据源架构中的列有时不会按照您希望显示的顺序显示。您可以使用DataGridViewColumn类的DisplayIndex属性更改列的显示顺序。
您可以像这样更改列的顺序:
private void AdjustColumnOrder()
{
customersDataGridView.Columns["CustomerID"].Visible = false;
customersDataGridView.Columns["ContactName"].DisplayIndex = 0;
customersDataGridView.Columns["ContactTitle"].DisplayIndex = 1;
customersDataGridView.Columns["City"].DisplayIndex = 2;
customersDataGridView.Columns["Country"].DisplayIndex = 3;
customersDataGridView.Columns["CompanyName"].DisplayIndex = 4;
}
http://msdn.microsoft.com/en-us/library/wkfe535h.aspx#Y0
如果您经常使用它,我建议您使用延伸方法添加辛糖并使其易于阅读和维护。