很奇怪的东西。我有一个带有未绑定 CheckBox 列的 DataGridView。当 ComboBox 的选定项发生更改时,DataGridView 会更新它的 DataSource(根据 ComboBox 中选择的内容,这里没有绑定,只是一个条件语句)。更新 DataSource 后,我遍历一个集合并相应地设置 CheckBox 列的值。这工作正常。但是,当我决定尝试在构造函数中设置 ComboBox 的 SelectedItem 以便在加载表单时 ComboBox 中有一个值时,相同的方法无法更新 CheckBox 单元格的状态,即使单步执行调试器显示这些值已设置为 true。
public LocksForm()
{
InitializeComponent();
AddDataGridColumns();
GetLookupData();
cboLockType.SelectedIndexChanged += cboLockType_SelectedIndexChanged;
//Setting this fires the event but the checkboxes in the grid remain unchecked
cboLockType.SelectedItem = cboLockType.Items[0];
}
private void cboLockType_SelectedIndexChanged(object sender, EventArgs e)
{
//Bind the data to the grid etc.
UpdateLocks()
}
// This works but not when fired from the Form constructor, only when user selects a value from ComboBox at Runtime
private void UpdateLocks()
{
if (_lockedIDs != null && _lockedIDs.Any())
{
for (int j = 0; j < dgLocks.RowCount; j++)
{
if (_lockedIDs.Contains((Guid)dgLocks[0, j].Value))
{
dgLocks[1, j].Value = true;
}
}
}
}