在 DataGrid 中显示数据行列表

Display a List of DataRows in DataGrid

我正在尝试在 DataGrid 中显示 ListDataRows,如下所示:

List<DataRow> grid = new List<DataRow>();

for (int i = 0; i <= dt.Rows.Count; i++)
{
    grid.Add(dt.Rows[i]);
}
dataGrid1.ItemsSource = grid;

dt 是我获取数据的 DataTable。 问题是,当我 运行 代码时 datagrid 是空的。

这也没有用:

datagrid1.DataContext = grid;

编辑: (xaml)

<DataGrid Name="dataGrid1" />

您不需要 DataRowsList。你可以简单地:

dataGrid1.ItemsSource = dt.DefaultView;

或者:

dataGrid1.DataContext = dt.DefaultView;

并且:

<DataGrid Name="dataGrid1" ItemsSource="{Binding}">

更新:如果你还想要DataRowsList

dataGrid1.ItemsSource = dt.AsEnumerable()
                          .Where(grid.Contains)
                          .AsDataView();

你也应该改变这个:

for (int i = 0; i <= dt.Rows.Count; i++)

为此:

for (int i = 0; i < dt.Rows.Count; i++)

请使用foreach循环,它更容易,你不会出错。

foreach (var row in dt.Rows)
{
    grid.Add(row);
}