奇妙な問題があります。基本的に、データグリッドビューとボタンがあります。このボタンをクリックすると、すべての行で列 1 の値 (チェックボックス列) がチェックされます。次に、現在のものに応じて true / false に設定します。
それはすべて問題ありません。
しかし、チェックされているこれらの行で何かを行うための別のボタンがあります。クリックすると、最初の行だけがチェックされていると識別されます。残りはどうやら今はnullです..?
したがって、データグリッドビューでチェックボックス列の値をプログラムで設定してから再度読み取るにはどうすればよいでしょうか。
これにより、チェックボックスが設定され、それらを表示したり、手動でチェックを外したりできます。
foreach (DataGridViewRow row in dgv.Rows)
{
var ch1 = new DataGridViewCheckBoxCell();
ch1 = (DataGridViewCheckBoxCell)row.Cells[0];
if (ch1.Value == null)
ch1.Value = false;
switch (ch1.Value.ToString())
{
case "True":
ch1.Value = false;
break;
case "False":
ch1.Value = true;
break;
}
}
次に、値をチェックする次のボタンは、null を見つけることです
foreach (DataGridViewRow row in rows)
{
var ch1 = new DataGridViewCheckBoxCell();
ch1 = (DataGridViewCheckBoxCell)row.Cells[0];
if (ch1.Value == null)
ch1.Value = false;
switch (ch1.Value.ToString())
{
case "True":
ch1.Value = true;
break;
case "False":
ch1.Value = false;
break;
}
var val = row.Cells["EbayListingID"].Value.ToString();
if (ch1.Value.ToString() == "true") continue;
var listing = dsEntities.EbayListings.First(x => x.EbayListingID.ToString() == val);
SubmitListingForReview(listing, false);
}