通常は直面することさえない問題に行き詰まっていますが、この場合は大したことのようです.
まず、混乱を避けるために、タイトルにも書きましたが、ここでは Windows Forms (WPF や Web 関連アプリケーションではありません) について話しています。
データソースがエンティティのナビゲーション プロパティ (エンティティ フレームワーク 5、コード ファースト) に由来する DataGridView があります。
このデータグリッドには、他のフィールドの中でも、「IdEquipment」と「IdConfiguration」があります。どちらの列も DataGridViewComboBoxEditingControl 型です。IdEquipment は、「Equipment」という BindingSource コントロールによって設定されます。
_context.Equipments.Local.ToBindingList();
外部キー「IdEquipment」としての「構成」テーブルとコンボボックスは、データグリッドの各行でこのテーブルのサブセットをどのようにする必要があります。それを行うには、いくつかの失敗したテストと SO および他の場所での検索の後、特にとに焦点を当てたこの解決策を見つけました。dataGridView1_EditingControlShowing
dataGridView1_CellValueChanged
それは正しい方向のようですが、問題は IdEquipment コンボボックスのデータソースをフィルター処理するときです (これは、 にバインドされた別の BindingSource コントロールでもあります) _context.Configurations.Local.ToBindingList();
。
私はエンティティを扱っているので、.ToList()
ではなくを呼び出すことになっているとどこかで読んだことがあります.ToBindingList()
が、この場合でも、フィルタリングは行われません (とにかく、BindingList はまだ問題ないと思います)。
私が使用できる別のオプションは、最初のコンボボックスの選択された値/エンティティを利用して、Equipment.Configuration ナビゲーション プロパティを取得することですが、DataGridViewComboBoxEditingControl でそれを行う方法がわかりません。
何か助けはありますか?