我正在尝试使用Combobox向DataGridView添加新列。 并将新单元格设置为默认值。 Combobox的列表更新很好,但我看不到默认值...
这是我的代码:
BatteryInformationTests = DataBaseManager.GetCatalogPropsByCatalogNumber(catalogNumber);
BatteryInformationTestsDataGridView.DataSource = BatteryInformationTests;
DataGridViewComboBoxColumn cmbCol = new DataGridViewComboBoxColumn
{
Name = "PropName",
DataPropertyName = "PropName"
};
cmbCol.Items.AddRange(new object[] { "1", "2", "3" });
BatteryInformationTestsDataGridView.Columns.Add(cmbCol);
foreach (DataGridViewRow row in BatteryInformationTestsDataGridView.Rows)
{
row.Cells["PropName"].Value = "2";
}
BatteryInformationTests是
private DataTable BatteryInformationTests;
这是运行http://prntscr.com/gk3890后的目标。
当我选择任何Combobox时,我可以看到正确的值列表。 http://prntscr.com/gk3acn
我也发现当我删除这一行
BatteryInformationTestsDataGridView.DataSource = BatteryInformationTests;
它解决了问题但是DataGridView将是空的bacouse no DataSource ther ...
解决此问题的最佳方法是什么?
答案 0 :(得分:1)
在手动添加之前移动BatteryInformationTestsDataGridView.DataSource = BatteryInformationTests;
这一行可能会解决问题,但是你说它没有用。所以另一个解决方案是分配NullValue
,
DataGridViewComboBoxColumn cmbCol = new DataGridViewComboBoxColumn
{
Name = "PropName",
DataPropertyName = "PropName"
};
cmbCol.DefaultCellStyle.NullValue = "2";
希望有所帮助,