C# 如果绑定到的DataTable具有项目列表,如何在DataGrid中显示组合框?
我有一个数据集。我不知道布景的内容。我只需要在DataGrid中显示集合的一个表。我可以使用下面的代码来实现这一点。为了能够使用它,我创建了自己的数据集。CustomerDataProvider是我创建的类,它有一个返回虚拟数据集的方法C# 如果绑定到的DataTable具有项目列表,如何在DataGrid中显示组合框?,c#,wpf,datagrid,combobox,datatable,C#,Wpf,Datagrid,Combobox,Datatable,我有一个数据集。我不知道布景的内容。我只需要在DataGrid中显示集合的一个表。我可以使用下面的代码来实现这一点。为了能够使用它,我创建了自己的数据集。CustomerDataProvider是我创建的类,它有一个返回虚拟数据集的方法 CustomerDataProvider provider = new CustomerDataProvider(); DataSet ds = new DataSet(); DataTable table = new DataTable(); DataView
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>
CustomerDataProvider provider=新的CustomerDataProvider();
数据集ds=新数据集();
DataTable=新的DataTable();
DataView视图=新建DataView();
公共主窗口()
{
初始化组件();
ds=dataset.GetDataSet();
table=ds.Tables[0];
视图=table.AsDataView();
this.DataContext=view;
}
现在,如果DataTable包含bool值,DataGrid会自动显示一个复选框。如果DataTable包含项目列表,我希望能够自动显示一个组合框。我该如何实现这一目标 不要自动生成列,而是将
AutoGenerateColumns
设置为false,您可以定义列并与DataTable
的不同字段绑定。您可以使用DataGridTemplateColumn
并为相同的内容提供CellTemplate
。请参见下面的参考代码:
<DataGrid AutoGenerateColumns="False">
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>
您要找的是DataTemplate
。谢谢。但是我不能定义列,因为我不知道DataTable将包含什么。每次打开应用程序时,内容都可能更改。