2

这是我的代码:

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.ValueMember = "Value";
col.DisplayMember = "Name";
col.DataSource = lstParameterDataSource;
//lstParameterDataSource is lst like List<BindEntity>.

BindEntity是一个有两个属性的类。一个属性是Value,另一个是Name。它们都是字符串类型。

this.dgvCondition.RowsAdded += delegate(object sender, DataGridViewRowsAddedEventArgs args)
{

if (this._parameters != null && this._parameters.Count > 0)
{
DataGridViewComboBoxCell cell = this.dgvCondition.Rows[args.RowIndex].Cells[0] as DataGridViewComboBoxCell;
cell.Value = lstParameterDataSource[0].Value;
}
};

dgvCondition 是我datagridview要编辑的用户。此外,我处理 gvCondition 的事件 RowsAdded 以便在用户添加新行时在 datagridview 中显示默认值。

当我将此 col 添加到我的 dgvCondition 时,然后在其上添加一行。它总是显示一个空单元格,除非我自己选择一个值。我试图调试这个应用程序,我发现代码cell.Value = lstParameterDataSource[0].Value;不起作用。单元格的值始终为空。

到底是怎么回事?我希望它在 UI 显示时显示默认值。我该如何实现这个功能?

4

1 回答 1

0

你可以用这个,

((DataGridViewComboBoxCell)(this.dgvCondition.Rows[args.RowIndex].Cells[0])).Value= lstParameterDataSource[0].Value;

让我知道你是否有帮助。

于 2013-05-27T06:54:05.800 回答