winforms c# DatagridviewComboBoxCell不改变初始值

cngwdvgl  于 2023-04-21  发布在  C#
关注(0)|答案(1)|浏览(181)

我目前正在为一个学校项目开发一个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
我希望单元格值发生变化。

3zwtqj6y

3zwtqj6y1#

DataGridViewComboBoxCell必须放置在DataGridViewComboBoxColumn中,您是否正确构建了DataGridView?
另外,不要创建新的单元格,而是尝试修改已经存在的单元格

DataGridViewComboBoxCell gridCombo = this.DGV_SITAC[e.ColumnIndex, e.RowIndex];

相关问题