c# DataGridViewComboBoxColumn selectedValue 分布在整行
c# DataGridViewComboBoxColumn selectedValue spread throughout the whole line
我遇到了以下问题:
我用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);
}
我得到以下数据网格视图:
然后,如果我在一个组合框中选择了一个新值:
如果我滚动(使用 horizontal-scroll)(或者如果我打开另一个选项卡并返回到此选项卡),那么整行都会获得相同的 selectedValue :
我该如何解决这个问题?
您对所有列使用相同的 DataPropertyName
。所以这种行为是意料之中的。事实上,所有列都显示一个值。您的网格数据源id
属性。
如果您希望它们显示不同的值,请使用不同的 DataPropertyName
或者换句话说,将它们绑定到不同的列。
我遇到了以下问题:
我用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);
}
我得到以下数据网格视图:
然后,如果我在一个组合框中选择了一个新值:
如果我滚动(使用 horizontal-scroll)(或者如果我打开另一个选项卡并返回到此选项卡),那么整行都会获得相同的 selectedValue :
我该如何解决这个问题?
您对所有列使用相同的 DataPropertyName
。所以这种行为是意料之中的。事实上,所有列都显示一个值。您的网格数据源id
属性。
如果您希望它们显示不同的值,请使用不同的 DataPropertyName
或者换句话说,将它们绑定到不同的列。