C# datagridview 列在排序时清除

C# datagridview Columns clear on sort

        var ds = new DataSet();
        ds.ReadXml(XMLFile);

        DataGridLogView.DataSource = ds.Tables["Header"];
        DataGridLogView.DataMember = "Data";
        DataGridLogView.Columns.Add("5", "Record #");
        DataGridLogView.Columns.Add("6", "Record");

列“5”和“6”是我在加载数据源后添加的问题列。除了我创建的两列(5 和 6)之外,我可以对任何列进行排序,但是当我对任何列进行排序时,我创建的两列将清除我添加的所有数据,我似乎无法弄清楚为什么要这样做。 提前致谢!

对于绑定到外部数据源的 DataGridView 控件,排序时不会自动保留非数据绑定单元格。您添加的列不在数据集中,因此它们会被清除。如果您的列“5”和“6”来自行数据,您可以尝试在 DataGridView.RowsAdded 事件中填充它们。或者,您可以在 DataGridView.Sorted 事件中重新加载这些列。

       datatable.Columns.Add("Record #", typeof(string));
       datatable.Columns.Add("Record", typeof(string));

我必须在设置 datagridviews 数据源之前将列添加到数据集,然后排序工作完美。