将DataTable数据绑定到DataGrid - 代码背后

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将DataTable数据绑定到DataGrid - 代码背后相关的知识,希望对你有一定的参考价值。

我创建了DataGrid并且我不想添加DataTemplateColumns泛型,所以它取决于我作为源放置的Data表的列数!但是当我完成所有这些并将DataGrid列绑定到DataTable列时,我的情况是我在DataGrid中获得了正确的行数,但它只是来自第一行的数据。那么,我做错了什么?

这是代码:

Binding binding = new Binding();
binding.Path = new 
PropertyPath(dataTable.Columns[i].ColumnName.ToString());
binding.Source = dataTable

FrameworkElementFactory textBlock = new 
FrameworkElementFactory(typeof(TextBlock));
textBlock.SetValue(TextBlock.TextProperty, binding);

DataTemplate dataTemplate = new DataTemplate();
dataTemplate.VisualTree = textBlock;
dataGridTemplateColumn.CellTemplate = dataTemplate;
dgTab1.Columns.Add(dataGridTemplateColumn);

我认为我有绑定问题,但我不知道如何解决它,显然!

答案

使用SetBinding(而不是SetValue)方法绑定到Text属性:

FrameworkElementFactory textBlock = new FrameworkElementFactory(typeof(TextBlock));
textBlock.SetBinding(TextBlock.TextProperty, binding);

以上是关于将DataTable数据绑定到DataGrid - 代码背后的主要内容,如果未能解决你的问题,请参考以下文章

如何将 DataTable 绑定到 Datagrid

将 DataGrid 绑定到两个 DataTable

在 DataTable 更改 WPF 后更新绑定到 DataTable 的 DataGrid

将行号列添加到绑定到 DataTable 的 DataGridView

DataGrid绑定DataTable出错

如何防止 ComboBox 中的 NewItemPlaceholder 行绑定到与 WPF 中的 DataGrid 相同的 DataTable