CheckedChanged
チェックボックスのイベントで実行される次のコードがあります。
/// <summary>
/// Determine whether to select all order records
/// </summary>
/// <param name="sender">determine sender object</param>
/// <param name="e">event args</param>
private void CbSelectAll_CheckedChanged(object sender, EventArgs e)
{
if (this.dgvOrderLines.Rows.Count != 0)
{
bool value = this.CbSelectAll.Checked;
for (int i = 0; i < this.dgvOrderLines.RowCount; i++)
{
this.dgvOrderLines[0, i].Value = value;
}
if (value)
{
this.btnFailed.Enabled = true;
this.BtnDownload.Enabled = true;
}
else
{
this.btnFailed.Enabled = false;
this.BtnDownload.Enabled = false;
}
}
}
問題は、これが実際に下線を更新していないように見えることですDataSource
。ループするチェックボックス列は、視覚的に正常に更新されます。
したがって、次の手順を実行すると、ユーザーがボタンを押した後も、選択した行すべてのチェックボックス列に誤った値が表示されます。
Order[] orderlines = ((SortableBindingList<Order>)this.dgvOrderLines.DataSource).Where(x => x.Include == true).ToArray();
私がどこで間違っているのかについて何か考えはありますか?