我试图在List中显示DataRowsDataGrid像这样:

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" />

最佳答案

您不需要ListDataRows。您可以简单地:

dataGrid1.ItemsSource = dt.DefaultView;


要么:

dataGrid1.DataContext = dt.DefaultView;


和:

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


更新:如果您仍然需要ListDataRows

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++)

关于c# - 在DataGrid中显示DataRows的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41822895/

10-13 03:15