1

当我向 DataGridView 添加新行时,该行不会保存到 DataView 或 DataTable。但是当我在那之后添加另一行时,该行被添加了。第一个新行被完全忽略。我不知道为什么。请帮忙。

private string _filePath;
private DataTable _dataTable;
private DataView _defaultView;

public StringRecords(string fileName)
{
    InitializeComponent();

    _dataTable = FileManager.Populate(filePath);
    _dataTable.TableName = filePath;
    _defaultView = new DataView(_dataTable);
    dataGridRecords.DataSource = _defaultView;
}

private void dataGridRecords_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    FileManager.SaveDataTableToCsv(_dataTable, filePath);
}

public static void SaveDataTableToCsv(DataTable source, string fileName)
{
    using (var stream = new StreamWriter(fileName, false))
    {
        var config = new CsvConfiguration { Delimiter = "|", HasHeaderRecord = false };
        using (var writer = new CsvWriter(stream, config))
        {
            var records = ToStringRecordList(source);

            writer.WriteRecords(records);
        }
    }
}

添加第一个新行仅生成此调试输出:

Loaded 'Anonymously Hosted DynamicMethods Assembly'.

我已经转储了 DataTable 和 DataView 对象。第一个新行不会添加到任一对象。

我究竟做错了什么?或者我怎样才能知道第一行发生了什么?

4

0 回答 0