DataTable转Datagrid绑定错误

DataTable into Datagrid binding error

我用 Excel 文件填充 DataTable,然后我将此 DataTable 分配给 DataGridItemSource,所有列和行很好,除了最后一个抛出:

"System.Windows.Data Error: 40 : BindingExpression path error: 'Y Error Est' property not found on 'object' ''DataRowView' (HashCode=64398613)'. BindingExpression:Path=Y Error Est. 1 (Class 1); DataItem='DataRowView' (HashCode=64398613); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')"`

这是填充函数:

using (var pck = new OfficeOpenXml.ExcelPackage())
{
    using (FileStream fileStream = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
        pck.Load(fileStream);
    }

    ExcelWorksheet worksheet = pck.Workbook.Worksheets.First();
    DataTable tbl = new DataTable();

    //Column Headers
    foreach (ExcelRangeBase firstRowCell in worksheet.Cells[9, 2, 9, worksheet.Dimension.End.Column])
    {
        tbl.Columns.Add(firstRowCell.Text);
    }

    Int32 startRow = 10;
    for (Int32 rowNum = startRow; rowNum <= worksheet.Dimension.End.Row; rowNum++)
    {
        ExcelRange range = worksheet.Cells[rowNum, 2, rowNum, worksheet.Dimension.End.Column];

        DataRow row = tbl.Rows.Add();

        foreach (ExcelRangeBase cell in range)
        {
            //tbl.Rows.Add(cell.Text);
            row[cell.Start.Column-2] = cell.Text;
        }
    }
    DTGrid.ItemsSource = tbl.AsDataView();
}

这里是 WPF 绑定:

<DataGrid Name="DTGrid" ItemsSource="{Binding Path=DTGrid.ItemsSource}" Grid.Row="1" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="2" AutoGenerateColumns="true"></DataGrid>

我正在遵循 MVVM 模式,以防万一有人问,这发生在我的 ViewModel 上。

我知道这个错误非常具体和清楚,但是除了那一列之外所有的列都很好,我还检查了 Excel 中单元格的数据类型并且与其他列相同,所以我很迷路。

有人可以帮忙吗?提前致谢。

这可能不是正确的答案,但我想我记得 excel 空单元格被归类为 null 而不是空字符串,您可能需要调整查询以用空字符串替换 null。您的错误抱怨期望值需要是一个字符串 希望这有用。

问题其实是ColumnName,ColumnName是用来创建绑定路径的,更好的解释可以在@ASh的回答中找到