【发布时间】:2016-08-10 14:10:50
【问题描述】:
我需要以编程方式从 DataTable 填充 WPF DataGrid。在设计时不知道列的列表。
应基于具有单个标签的简单模板手动生成列(AutoGeneratingColumn 事件?)。 Label.Content 是列名。现在允许绑定 - 模板可以在 XAML 中创建,但其他所有内容都需要在 C# 中
有点复杂的方法是用于行。数据单元格模板应具有单个标签或文本框,但单元格模板应在运行时设置。例如,字符串应在单元格中表示超过 5 个字符,则应使用基于标签的模板。否则,应使用 TextBox 模板。 同样,模板只能在 XAML 中创建。填充数据需要在C#中完成
下面是一些用于生成数据的代码:
DataTable myTable = new DataTable(tableName);
myTable.Columns.Add(new DataColumn("id", typeof(int)));
myTable.Columns.Add(new DataColumn("name", typeof(string)));
myTable.Rows.Add(new object[] {1, "label"});
myTable.Rows.Add(new object[] {2, "text box"});
【问题讨论】:
标签: c# wpf xaml templates datagrid