ソフトウェアのテーブル、システムのテーブル、およびInstalledSoftwares(ID、SysID、SoftID)のテーブルがあります。すべてのソフトウェアをDataGridViewにロードしたいのですが、DataGridViewには3つの列(ID、SoftName、installed)があり、IDとSoftNameはソフトウェアからロードされます。Installedは、InstalledSoftwaresテーブルにレコードが存在するときにチェックしたいチェックボックスです。ソフトウェアのために。インストールされた列はバインドされておらず、そのTrueValueは1に設定されており、次のようにForEachブロックに入力します。
DGVIS.DataSource = Reports.installedSoftwares.Softwares();
IQueryable<InstalledSoftware> Installed = Reports.installedSoftwares.InstalledOn(SystemID);
foreach (var ins in Installed)
{
foreach (DataGridViewRow row in DGVIS.Rows)
{
if ((int)row.Cells["IDo"].Value == ins.SoftID)
{
row.Cells["installed"].Value = 1;
break;
}
}
}
ただし、アプリケーションを実行するとすべてのチェックボックスがオフになります。トレースすると、インストールされた行の値は1になりますが、foreachが終了すると、すべてのチェックボックスがオフになり、値は0になります(FalseValueは0に設定されます)。
どうすればそれを機能させることができますか?