我正在尝试将DataGrid
绑定到WPF中的通用列表。
以下代码导致列表中每行数据的空行(即,如果我有5行,则显示5行,但不显示单元格中的任何数据):
List<DataRow> DataBindingSource = GuestList.Where(row =>
(row.Field<long>("FK_GROUP_ID") == Int64.Parse(cmbGroup.SelectedValue.ToString())) &&
(row.Field<long>("FK_AGE_GROUP_ID") != (int)L_Age_Group.Child))
.ToList();
gvwAddultDetails.ItemsSource = DataBindingSource;
如果我将对象列表转换为DataTable
,它就可以工作(显示数据)。例如:
List<DataRow> DataBindingSource = GuestList.Where(row =>
(row.Field<long>("FK_GROUP_ID") == Int64.Parse(cmbGroup.SelectedValue.ToString())) &&
(row.Field<long>("FK_AGE_GROUP_ID") != (int)L_Age_Group.Child))
.ToList();
gvwAdultDetails.ItemsSource = DataBindingSource.CopyToDataTable().DefaultView;
但如果我有List<DataRow>
,我该如何将其转换为DataTable
?
在WPF中将DataGrid
绑定到“列表”的最佳做法是什么?
答案 0 :(得分:5)
将DataGrid
绑定到WPF中的通用列表的一种方法:
<强> MainWindow.xaml.cs 强>
Grid.DataContext = DataBindingSource;
<强> MainWindow.xaml 强>
<DataGrid
AutoGenerateColumns="True"
ItemsSource="{Binding}"
Name="Grid" />
但它可能无法与DataRow
一起使用,因为在WPF中,如果要绑定某些内容,则需要将其作为属性。
- 其他想法 -
以下是将通用列表转换为DataTable
的方法:
如何将DataGrid
绑定到WPF中的通用列表:
特别是(WPF中的一个很棒的功能):