我对C#还是有点新,但我使用的Winforms,我有一个DataGridView连接到数据源,并正在填充正确。如何更改动态添加的DataGridViewComboBoxColumn的组合框单元格的文本?
我也在运行时添加了一个ComboBoxColumn。这个ComboBoxColumn被连接到一个数据源,displaymember和valuemember被设置,headertext被设置,然后列被添加到数据网格中。连接工作得很好,当用户单击组合框时按预期填充。
当用户在网格中完成一个新行时,他显然会选择comboBox中的项目,然后在完成时将整行更新到我的数据库。
我的问题是:当这个数据网格再次打开或重新绘制它由于datasource属性填充,但我怎么让comboBox单元格显示他最初选择的VALUE,而不是一个空白框。我知道从数据库中获取价值并输入价值的代码。理想情况是,如果我可以将该变量放在comboBox的显示中。请记住,comboBox仍然是数据绑定的,以便用户可以编辑该值,如果他愿意的话?
我知道在一个普通的comboBox控件中,我应该设置.Text属性。但DataGridViewComboBox不具有相同的属性。
下面是实际的数据连接的代码并添加comboBoxColumn的:
public void AddComboBoxColumn(DataGridView datagridName, DataTable table, string headerText, int columnIndex)
{
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
GetDisplayAndValueMembers(table, headerText); //Calls method that gets the datasource, displaymember, valuemember depending on column
column.DataSource = tableRef; //sets datasource to table referenced by column
column.DisplayMember = displayMember; //sets displaymember
column.ValueMember = valueMember; //sets valuemember
column.HeaderText = headerText; //changes headertext to displayed text
if (newColumnIndex == 0)
datagridName.Columns.Add(column); //added to end of datagrid
else
{
datagridName.Columns.RemoveAt(columnIndex);
datagridName.Columns.Insert(newColumnIndex, column); //added in specific index if needed
}
}
这只是显示下拉的dataconnection。显然有很多方法正在使用大量的代码。但这不是问题,因为这工作正常。我不知道如何去实际显示以前选择的项目作为组合框的文本的问题?
也许提高你的问题来显示相关的代码? –