私は、ComboBox列を持つDataGridViewを持っています。私はそれが行に応じて異なるオプションを持つ必要があります。値は、同じ初期リストに基づいている必要がありますが、すでに使用されている値は表示されないようにフィルタリングされています。DataGridView ComboBox列の動的項目
たとえば、4つの行で「A」、「B」、「C」および「D」の4つのドロップダウン選択肢があります。最初は、コンボボックスの列の値には何も設定されていません。最初のドロップダウンをクリックすると、すべての選択肢が表示されます。 「A」を選択したとしましょう。今度は、別の行のドロップダウンをクリックすると、 "A"がすでに使用されているため、 "B"、 "C"、 "D"のみ表示されます。
また、常に空のオプションがトップに表示されます。
これを実行しようとすると、DataRowエラーが発生します。私は、CellBoxとCellBeginEditを使ってComboBoxを動的に設定しようとしました。どちらの場合も、予期しない動作が発生します。以前に設定された値がもはや選択肢に含まれていないため、すでに選択されている値の行には値が変更されることがあります。場合によっては何も起こらないことがあります。
ちょうどメモとして、私はStack Exchangeを数時間探していました。すべての準備ができていて、 "解決策"のどれも実際には動作しません。
EDIT:CellBeginEditを使用してComboBoxアイテムを設定すると、基になるデータは正常です。コンボボックスに表示されている選択された値だけです。コンボボックスをドロップダウンせずにセルを選択するだけで、値が更新されます。
あなたはWPFを使用しているようです。 WinFormsのすべてのソリューション? – James