datagridview に 2 つのコンボボックス列があり、最初の選択内容に基づいて 2 番目のデータソースを設定しようとしています。
残念ながら、あまり運がありません。最初のイベントで十分だと思いますが、CellBeginEdit と PopupClosing の 2 つのイベントを処理しようとしています。
この問題の奇妙な点は、comboboxcolumn セルに適切なメンバー コレクションを表示させるのではなく、この datagridview で開いた最後のコンボボックス列のデータソースを表示させることです。デバッグ中に、コンボボックスのセルは、私が望むものに設定されています。
これが私のコードです:
switch ((JobType)(Enum.Parse(typeof(JobType), dgvScheduledJobs.Rows[e.RowIndex].Cells[dgvColumnJobType.Index].Value.ToString())))
{
case JobType.Upload:
{
(this.dgvScheduledJobs[this.dgvColumnSource.Index, e.RowIndex] as DataGridViewComboBoxCell).DataSource = _datasources;
break;
}
case JobType.Extract:
{
(this.dgvScheduledJobs[this.dgvColumnSource.Index, e.RowIndex] as DataGridViewComboBoxCell).DataSource = _queries;
break;
}
default:
{
break;
}
}
ヘルプやアドバイスをいただければ幸いです。
アップデート:
申し訳ありません。この問題は、DataGridViewoComboBoxColumn から派生したクラスを使用して、DataGridViewComboBoxCell で使用されるコントロールをオーバーライドしたことが原因でした。だから、それは私たちが作成した問題です。
一般的に、上記のアプローチはうまくいくはずだと思います。