将数据源绑定到DataGridViewComboBoxColumn时,默认值始终显示为空白

时间:2013-05-27 05:15:41

标签: c# datagridview

这是我的代码:

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用户将被编辑。另外我处理事件RowsAdded of gvCondition,以便在用户添加新行时在datagridview中显示默认值。

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

发生了什么事?我希望它在UI显示时显示默认值。我该如何实现这个功能?

1 个答案:

答案 0 :(得分:0)

你可以使用它,

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

如果你帮助我,请告诉我。