我试图找出让所有用户的列以默认顺序(从左到右)开始的最简单方法。
我尝试将它们设置在IList<T>
我用来填充 DataSource 的地方,但这不起作用。
除了按照此页面上的说明手动设置每列之外,我还有其他选择 -->重新排序列
请查看以下文档。
您几乎可以定义列的外观。这是代码:
radGridView1.MasterTemplate.AutoGenerateColumns = false;
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("Name"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("Attributes"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("LastAccessTime"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("CreationTime"));
DirectoryInfo directory = new DirectoryInfo("C:\\");
FileSystemInfo[] filesInDirectory = directory.GetFileSystemInfos();
radGridView1.DataSource = filesInDirectory;
如您所见,我已设置不自动生成列。然后我定义我想要的列。然后只需绑定数据源。这会给你你想要的订单
如果这对你有用,请告诉我。
网格将根据对象中的字段读取并创建其列:
class MyObj
{
public string Column2 { get; set; }
public int Column1 { get; set; }
}
上面的代码将首先在您的网格中添加 Column2 然后 Column1,而下面的代码将做相反的事情:
class MyObj
{
public int Column1 { get; set; }
public string Column2 { get; set; }
}
DataTables 也是如此,它只是按照它们的顺序读取列。
要重新排序它们,您可以使用您已经发现的Move方法。
我在 VB.NET 上行走,我做了这样的事情..
dgv.Columns(Col4).DisplayIndex = 0
dgv.Columns(Col3).DisplayIndex = 1
dgv.Columns(Col2).DisplayIndex = 2
dgv.Columns(Col1).DisplayIndex = 3
在 C# 中你可以在这里找到它