WPF MVVM 动态数据表绑定不显示单元格的值

WPF MVVM Dynamic DataTable Binding does not show value of cells

我有一个 DataGrid,它显示来自绑定到我的 code-behind 的数据 Table 的数据。 (我要绘制的 TableData 取决于 ComboBox 的 selectedItem。更改 selectedItem 时它会更改列 headers,所以我认为这不是问题。在两个 prictures 中看到这个下)

因此,.xaml 中的 DataGrid 如下所示:

  <DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Path=CurrentTable.CurrentDataTable.DefaultView}" >
  </DataGrid>
 

在我的 ViewModel 中,我有一个来自 class Table 信息的名为“CurrentTable”的 object。 它看起来像这样:

public class TableInformation : BaseViewModel
  {
    public string TableName; //with geter, seter
    public DataTable CurrentDataTable; //with geter, seter
  }

由于 PropertyChanged 事件,with 继承自 BaseViewModel(这很好用!)。

加载我的 CurrentTable 时,代码如下所示:

public void LoadInitialJsonData()
    {
      // Fill all table data
      QtyTopLevelKeys = BPPCjson_if.BPPCjson_getTableCount(context);
      for (int curTableIdx = 0; curTableIdx < QtyTopLevelKeys; curTableIdx++)
      {
        int    qtyRows      = // rowCount
        int    qtyCols      = // columnCount
        var    curDataTable = new DataTable();

        // set Header Name for each column
        for (int curCol = 0; curCol < qtyCols; curCol++)
        {
          string curHeader = //unique headername from interface
          if (!curDataTable.Columns.Contains(curHeader)) 
          { 
            curDataTable.Columns.Add(curHeader, typeof(string));
            // PropertyChangedEvent has no effect here
          }
        }

        // set Value for each cell
        for (int curRow = 0; curRow < qtyRows; curRow++)
        {
          DataRow curRowData;
          curRowData = curDataTable.NewRow();
          for (int curCol = 0; curCol < qtyCols; curCol++)
          {
            string data = //value of cell
            curRowData[curCol] = data;
          }
          curDataTable.Rows.Add(curRowData);
        }
        curDataTable.TableName = //unique Name
        TableInformation ti = new TableInformation(curTableName, qtyRows, qtyCols, curDataTable);
        AllTables.Add(ti);
      }
    }

不幸的是,显示的 Table 看起来像这样:

Cell-values not shown but cells are existing 1

Cell-values not shown but cells are existing 2

你能帮帮我吗?为什么它显示了正确数量的 Rows/Cells 但没有任何内容?

它还说我有绑定错误。但我真的不明白为什么... Binding errors

非常感谢您的帮助!!!

在@ASh 的帮助下,我自己找到了它。

我的“唯一标头名称”确实包含点。

我所做的只是替换谷歌搜索可能有用的东西。

这对我有帮助:https://social.msdn.microsoft.com/Forums/vstudio/en-US/7d84c8f2-2709-4642-a259-739036ffd2a6/having-a-dot-in-column-name-will-cause-datagrid-cells-to-be-empty?forum=wpf