我目前正在为一个学校项目开发一个C#桌面应用程序,我是一名学生,从今以后,我是一名初学者。我有一个问题给我带来了很多麻烦。
我通过.datasource将一个对象列表(从数据库)加载到DatagridView中。到目前为止没有具体问题。列表中的每个对象都有一个颜色分配给它。
在VisualStudio属性中,列类型设置为DataGridViewComboBoxColumn。(请参见以下代码中的设置)
一旦在DGV上,当我点击颜色列的任何一行的颜色单元格时,就会显示完整的静态数据列表。我可以选择列表中的任何颜色。但是,如果我点击回车或离开行,初始颜色就会回来...
示例:DB中的颜色是“红色”,我从组合中选择“黄色”,按回车键,单元格恢复为“红色”...
我错过了什么?
感谢您的任何帮助!
下面是一些有用的代码示例:
public class EplfColor
{
public int eplfColorId{ get; set; }
public string eplfColorName { get; set; }
public int eplfColorCode { get; set; }
public override string ToString()
{
return this.eplfColorName;
}
}
private void RefreshDGV()
{
combocolumn.DataSource = SitacController.GetEplfColor();
this.DGV_SITAC.DataSource = SitacController.GetAllSitac();
}
Visual Studio设计器的摘录:
//
// EPLF_Color
//
EPLF_Color.DataPropertyName = "EplfColor";
EPLF_Color.DataSource = eplfColorBindingSource;
EPLF_Color.DisplayMember = "eplfColorName";
EPLF_Color.HeaderText = "EPLF Color";
EPLF_Color.MinimumWidth = 6;
EPLF_Color.Name = "EPLF_Color";
EPLF_Color.Resizable = DataGridViewTriState.True;
EPLF_Color.SortMode = DataGridViewColumnSortMode.Automatic;
EPLF_Color.ValueMember = "eplfColorId";
//
// eplfColorBindingSource
//
eplfColorBindingSource.DataSource = typeof(Models.EplfColor);
ComboBoxList
我希望单元格值发生变化。
1条答案
按热度按时间3zwtqj6y1#
DataGridViewComboBoxCell必须放置在DataGridViewComboBoxColumn中,您是否正确构建了DataGridView?
另外,不要创建新的单元格,而是尝试修改已经存在的单元格