为什么DataGridColumn.GetCellContent(DatagridRow)总是为null,即使DataGridRow不为null?

时间:2015-05-22 10:22:38

标签: c# wpf wpf-controls wpfdatagrid

我在加载DataGridRow时尝试访问每个单元格内容,但DataGridColumn.GetCellContent(DataGridRow)始终为null,尽管该列的DataGridRow中有数据。 例如:

    void DataGrid_LoadingRow(object sender,DataGridRowEventArgs e)
    {
      foreach(var colItem in dg.Columns)
      {
        var cell=item.GetCellContent(e.Row as DataGridRow);//Row is not null, cell is null after this execution.       
      }
    }

可能是什么原因?

PS:我已禁用行和列的虚拟化。

由于

2 个答案:

答案 0 :(得分:1)

DataGrid是关于在DataGridRow中加载行数据并填充行时,它似乎首先在应用数据绑定等之前引发LoadingRow事件。因此,其内容此时DataGridCell将为空。

这是类似PropertyChanging事件(在应用更改之前触发)。而PropertyChanged事件在发生更改后发生。

您可以为此目的使用其他活动。

答案 1 :(得分:0)

这是一个软件错误:

  • 将列可见性更改为可见
  • 删除DataGridTemplateColumn

它会很好用。