如何在代码后面将DataGrid绑定到DataTable?

时间:2011-04-28 07:14:58

标签: c# wpf datatable

如何将C#代码中的DataGrid绑定到DataTable? (所有控件都是在运行时生成的,因此请不要使用XAML)

我尝试了Binding(),设置DataContext,设置ItemsSource,但都不起作用:

/* Binding() fails */
Binding bind = new Binding();
bind.Source = dataset;
bind.Path = new PropertyPath("dataset.Tables");
datagrid.SetBinding(DataSet, bind);

/* DataContext fails */
datagrid.DataContext = dataset.Tables;

/* ItemsSource fails */
datagrid.ItemsSource = dataset.Tables;

我需要做的就是将DataGrid绑定到DataTable,所以当有新的行添加到DataTable时,它会自动显示在DataGrid上。

我通过stackoverflow和google搜索,但奇怪的是我无法找到解决方案。

2 个答案:

答案 0 :(得分:6)

尝试绑定到数据集中的一个表:

datagrid.ItemsSource = dataset.Tables[0].DefaultView;

答案 1 :(得分:0)

另外,为了在您的数据及其在表单上的表示之间保持良好的抽象层,我建议您将DataGridView的属性AutoGenerateColumns设置为false,并添加您想要手动显示的列,并使用标题名称你选择的(在这种情况下,不要忘记设置列的DataPropertyName属性。)