c# DataGridViewComboBoxColumn selectedValue 分布在整行

标签 c# .net winforms datagridview datagridviewcomboboxcolumn

我遇到了以下问题:

我用 7 个 DataGridViewComboBoxColumn 构建了一个 dataGridView,添加了以下代码

foreach (string jour in Enum.GetNames(typeof(Jours)))
        {
            DataGridViewComboBoxColumn comboboxColumn = CreateComboBoxColumn();
            List<Journee> myJourneeList = new List<Journee>(mydatas.journeeTypeList.ToList());
            comboboxColumn.DataSource = myJourneeList;
            comboboxColumn.DisplayMember = "name";
            comboboxColumn.ValueMember = "id";
            comboboxColumn.DataPropertyName = "id";
            comboboxColumn.HeaderText = jour;
            dataGridView_machineSemaines.Columns.Add(comboboxColumn);
            setSelectedValue(jour, myJourneeList);
        }

我得到以下数据 GridView :

enter image description here

然后如果我在一个组合框中选择了一个新值:

enter image description here

如果我滚动(使用水平滚动)(或者如果我打开另一个选项卡并返回到该选项卡),那么整行都会获得相同的 selectedValue :

enter image description here

我该如何解决这个问题?

最佳答案

您对所有列使用相同的 DataPropertyName。所以这种行为是意料之中的。事实上,所有列都显示一个值。网格数据源的 id 属性。

如果您希望它们显示不同的值,请使用不同的 DataPropertyName,或者换句话说,将它们绑定(bind)到不同的列。

关于c# DataGridViewComboBoxColumn selectedValue 分布在整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46785075/

相关文章:

c# - 如何在 Visual Studio 中打开表单设计器?

c# - 在 C# 中,myInt++ 和++myInt 有什么区别?

c# - xamarin 形式的侧边栏抽屉

c# - 将 Java Map<string, string> 从 XML 解析为 C# 对象

c# - 随机整数中最可能的位

c# - 限时杀进程的逻辑

c# - 在使用时对域对象进行更改

c# - .NET (C#) 应用程序插件的依赖 hell

C# - 是否可以创建一个可以从带有参数的命令行运行的 Windows 窗体应用程序?

c# - 将数据添加到结构体数组中