Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果绑定到的DataTable具有项目列表,如何在DataGrid中显示组合框?_C#_Wpf_Datagrid_Combobox_Datatable - Fatal编程技术网

C# 如果绑定到的DataTable具有项目列表,如何在DataGrid中显示组合框?

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

我有一个数据集。我不知道布景的内容。我只需要在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>
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将包含什么。每次打开应用程序时,内容都可能更改。