如果绑定到的数据表有一个项目列表,如何在数据网格中显示组合框
本文关键字:数据网 数据 网格 组合 显示 绑定 数据表 有一个 列表 项目 如果 | 更新日期: 2023-09-27 17:49:24
我有一个数据集。我不知道集合的内容。我只需要在DataGrid中显示集合的表。我可以使用下面的代码来做到这一点。只是为了能够使用它,我已经创建了自己的数据集。CustomerDataProvider是我创建的类,它有一个返回虚拟数据集的方法。
CustomerDataProvider provider = new CustomerDataProvider();
DataSet ds = new DataSet();
DataTable table = new DataTable();
DataView view = new DataView();
public MainWindow()
{
InitializeComponent();
ds = dataset.GetDataSet();
table = ds.Tables[0];
view = table.AsDataView();
this.DataContext = view;
}
<Grid>
<DataGrid x:Name="dynamicGrid" ItemsSource="{Binding Path=., Mode=TwoWay}" ColumnWidth="*" />
</Grid>
现在,如果DataTable包含bool值,DataGrid将自动显示一个CheckBox。如果DataTable包含项目列表,我希望能够自动显示ComboBox。我该怎么做呢?
设置AutoGenerateColumns
为false,而不是自动生成列,您可以定义列并与DataTable
的不同字段绑定。你可以取DataGridTemplateColumn
并提供CellTemplate
。参见下面的参考代码:
<DataGrid AutoGenerateColumns="False">
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>