C# 如何确定绑定到数据源的datagridview中显示列的顺序
是否有方法确定中显示的列的顺序 将datagridview绑定到包含 基础IList? 我认为有一个特定的属性用于此目的 但我想不起它到底是什么 例如: 编辑:C# 如何确定绑定到数据源的datagridview中显示列的顺序,c#,winforms,data-binding,.net-2.0,C#,Winforms,Data Binding,.net 2.0,是否有方法确定中显示的列的顺序 将datagridview绑定到包含 基础IList? 我认为有一个特定的属性用于此目的 但我想不起它到底是什么 例如: 编辑: 我想补充一点,我不想手动将列添加到设计器中的列列表中。我希望尽可能保持动态。在DataGridView中指定实际的列列表,而不是允许它自动数据绑定。通过选择控件并添加列,可以在VisualStudio的“设计”视图中执行此操作。确保在每列中指定它应绑定到的属性。然后,您可以按照任何方式重新排列列,也可以进行其他自定义 我认为Displa
我想补充一点,我不想手动将列添加到设计器中的列列表中。我希望尽可能保持动态。在
DataGridView
中指定实际的列列表,而不是允许它自动数据绑定。通过选择控件并添加列,可以在VisualStudio的“设计”视图中执行此操作。确保在每列中指定它应绑定到的属性。然后,您可以按照任何方式重新排列列,也可以进行其他自定义
我认为
DisplayOrder
属性相对较新,可能在DataGridView
控件中不受支持。DataGridView中列的显示顺序由DataGridViewColumn
-s的DisplayIndex
属性决定。您必须在网格的列上设置这些属性,才能更改它们的顺序
我也同意Eilon的回答:您可以自己创建列列表,而不是自动数据绑定,这样您就可以确定列的显示顺序。列顺序并不总是有效的。您需要关闭AutoColumnCreate来修复不一致:
我不确定这是否是.Net提供的功能,但如果您只是更改类中属性的顺序,网格将以相同的顺序呈现列 下面两个类将按照它们在类中键入的顺序呈现。奇怪
class CustomClass
{
public bool Selected {get;set;}
public string Name{get;set;}
}
class CustomClass
{
public string Name{get;set;}
public bool Selected {get;set;}
}
如果您尝试设置
DisplayIndex
,请确保在设置DataGridView
的数据源后设置它。
class CustomClass
{
bool _selected = false;
//[DisplayOrder(0)]
public bool Selected
{
get { return _selected; }
set { _selected = value; }
}
string _name;
//[DisplayOrder(2)]
public string Name
{
get { return _name; }
set { _name = value; }
}
string _value;
//[DisplayOrder(1)]
public string Value
{
get { return _value; }
set { _value = value; }
}
}
class CustomClass
{
public bool Selected {get;set;}
public string Name{get;set;}
}
class CustomClass
{
public string Name{get;set;}
public bool Selected {get;set;}
}