1

リストを返すフォームで呼び出すメソッドがあり、それを BindingSource にスローし、BindingSource を DataGridView にスローします。Order クラスには、List を含む Items というプロパティがあります。私の Order クラスと Item クラスはどちらも INotifyPropertyChanged インターフェイスを実装しています。

私がやろうとしているのは、DataGridView で行がクリックされると、注文に関連付けられたアイテムのリストを Items プロパティから別のグリッドにプルアップすることです。これらのアイテムがグリッドに 2 方向にバインドされていることを確認したいのですが、思い通りに呼び出すことができません...

itemsGrid.DataSource = orderBindingSource[orderGrid.CurrentRow.Index].Items;

BindingSource 内からリストのプロパティにアクセスできません (. 演算子の後、Items は使用可能なオプションではありません)... 推奨事項はありますか? BindingList<Order>andを使用してみましBindingList<List<Order>>たが、暗黙の変換エラーが発生していました。助言がありますか?

*編集: OK、BindingList を機能させることができました。このようにリストを追加する必要があるとは知りませんでした

orderList = new BindingList<Order>(Method To Retrieve List<Order>)

これとは別に、注文を表示する最初のグリッドが機能し、完全に更新されます。次のようにバインドされたオーダーのアイテムを含むサブグリッド

itemsGrid.Datasource = orderList[ordersGrid.CurrentRow.Index].Items;

ちゃんと表示されます。セットアップされたいくつかのテキストボックスがあり、各テキストボックスは、ordersGrid の現在選択されている行の orderList からアイテムにバインドされているため、編集を有効にしていません。サブグリッドで選択したアイテムのテキスト ボックス内のデータを更新できますが、テキスト ボックスを離れると変更されます。編集されたアイテム プロパティのサブ グリッドの行は、テキスト ボックスを離れると更新されません。ただし、グリッドで別の項目を選択すると更新されます。グリッドの別の行をクリックする代わりに、テキストボックスを離れるときに更新するにはどうすればよいですか?

4

0 に答える 0