0

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 で使用されるコントロールをオーバーライドしたことが原因でした。だから、それは私たちが作成した問題です。

一般的に、上記のアプローチはうまくいくはずだと思います。

4

1 に答える 1

0

これは、DataGrid の更新の問題のようです。この投稿を見てください。

于 2013-08-05T17:07:37.953 に答える