【发布时间】:2014-12-12 23:05:12
【问题描述】:
我的项目是一个 C# 应用程序,用于将数据从 Excel 工作表导入数据库并提示用户手动映射它们。
我需要创建两行:
- 第一行是
DataGridTextColumn,其中excel的标题 适合。 - 第二行是
DataGridComboBoxColumn,具有数据库的column_name
每个 DataGridTextColumn 都有一个组合框。
但是我遇到了一个问题,我无法使 DataGridComboBoxColumn 工作,每次我启动应用程序时,第一行正常工作但第二行是空的
代码:
foreach (DataRow row in dt.Rows)
{
DataGridTextColumn dgtc = new DataGridTextColumn();
dgtc.MinWidth = 100;
dgtc.CanUserSort = false;
dgtc.Header = row["Column_name"].ToString();
dg.Columns.Add(dgt);
DataGridComboBoxColumn dgcbc = new DataGridComboBoxColumn();
dgcbc.ItemsSource = columnList;
dgcbc.MinWidth = 100;
dg2.Columns.Add(dgcbc);
}
xaml:
<DataGrid x:Name="dg" HorizontalAlignment="Left" Height="29" Margin="11,72,0,0" VerticalAlignment="Top" Width="579"/>
<DataGrid x:Name="dg2" HorizontalAlignment="Left" Height="30" Margin="11,106,0,0" VerticalAlignment="Top" Width="579"/>
实时取景:
代码正在运行,但组合框始终显示空字段。
关于为什么 DataGridComboBoxColumn 不适合我的任何帮助?
【问题讨论】:
-
columnList来自哪里?我猜那要么是null,要么是空的…… -
SqlConnection conn = new SqlConnection("server=***;database=***;Integrated Security = true"); string[] 限制 = new string[4] { null, null, "orders", null }; conn.Open(); var columnList = conn.GetSchema("Columns", 限制).AsEnumerable().Select(s => s.Field
("Column_Name")).ToList();这足以确保 columnList 不为空并且它有 4 个字符串,我什至对其进行了测试..
标签: c# wpf datagrid datagridcomboboxcolumn datagridtextcolumn