如何将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搜索,但奇怪的是我无法找到解决方案。
答案 0 :(得分:6)
尝试绑定到数据集中的一个表:
datagrid.ItemsSource = dataset.Tables[0].DefaultView;
答案 1 :(得分:0)
另外,为了在您的数据及其在表单上的表示之间保持良好的抽象层,我建议您将DataGridView的属性AutoGenerateColumns设置为false,并添加您想要手动显示的列,并使用标题名称你选择的(在这种情况下,不要忘记设置列的DataPropertyName属性。)