首先,我必须提到我已经看过this question,但它并没有帮助我解决我的问题。
根据我的previous question,我将DataGridView
保存到XML文件中。现在,当我使用存储在XML文件中的数据加载窗口表单时,我将填充DataGridView
。
我的问题是,当我想根据存储的数据设置一个ComboBox
的值时,另一个ComboBox
的值也会改变。我想分别设置每个ComboBox
的值。
我的代码如下:
private void WindowSelection_Load(object sender, EventArgs e)
{
dataGridSource = DeserializeFromXML();
foreach (WindowHolder obj in dataGridSource)
{
int index = dataGridViewWindowSelection.Rows.Add();
DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn();
combo2 = (DataGridViewComboBoxColumn)dataGridViewWindowSelection.Rows[index].Cells["Reader"].OwningColumn;
combo2.DataSource = readerSource;
int readerSourceIndex = findReaderSourceIndex(obj.reader);
if (readerSourceIndex != -1)
{
combo2.DefaultCellStyle.NullValue = readerSource[readerSourceIndex];
}
else
{
combo2.DefaultCellStyle.NullValue = readerSource[0];
}
dataGridViewWindowSelection.Rows[index].Cells["Location"].Value = obj.location;
dataGridViewWindowSelection.Rows[index].Cells["AlwaysOnTop"].Value = obj.alwaysOnTop;
dataGridViewWindowSelection.Rows[index].Cells["AlwaysShow"].Value = obj.alwaysShow;
}
}
答案 0 :(得分:0)
您的意思是指您正在更改combo2.DefaultCellStyle
的行吗?
这是因为combo2.DefaultCellStyle
是对所有组合的默认单元格样式的引用,因此您不会更改此组合 - 您正在更改常见的默认样式。
如果您希望此组合的样式与默认样式(以及其他组合样式)不同,您应该创建一个单独的样式并将其设置为combo2的样式。
我想该陈述应该类似于combo2.DefaultCellStyle = ...
或combo2.SetDefaultCellStyle( ... )