1

4 つの列を持つ DataGridView があり、そのうちの 1 つはドロップダウン (ComboBox) 列です。この列の値は異なる必要があるため、特定のドロップダウン値が行で選択されたら、他の行のドロップダウンで使用できないようにしたいと思います。特定の値が選択されていない場合、ドロップダウンに再び表示されます。同様の例( 123)を含むいくつかの記事を見つけました。ただし、それらのすべてには、イベントへのサブスクライブと ComboBox への手動入力が含まれているようです。

  • all.Except(selected)データバインディングだけでこれを達成する方法はありますか (おそらく、基本的にLinq クエリである IEnumerable に対して)?
  • データバインディングだけでは不十分な場合、私が見つけた例よりも良い方法はありますか?

私は WinForms の開発に少し慣れていないので、良いアドバイスと「うん...うまくいくよ」を区別するのに苦労しています。

4

1 に答える 1

1

これまでの検索は正しいと思います-イベントをサブスクライブするよりも、同じ DataGridView 列のコンボボックスに異なるリストを提供するより良い方法はありません(通常CellBeginEditCellEndEditその後、個々の DataSource を設定しますDataGridViewComboBoxCell)。

この証拠として、Microsoft の DataGridView プログラム マネージャーである Mark Rideout によって書かれた優れたDataGridView FAQを紹介します。FAQ には、投稿したリンクと非常によく似た、問題に対する完全な解決策があります。

于 2011-10-04T21:35:16.580 に答える