助けてください!データグリッド上を移動するときにコンボボックスを更新する
私はインターネットで多くの研究をしましたが、私の質問には解決策が見つかりませんでした。
私には食べ物のある形があります。フォーム上にグリッドがあり、それを使って私は食べ物の上を移動することができます。画面には、カテゴリを含むコンボボックス(グリッド内ではない)があります。コンボボックスには、カテゴリテーブルのカテゴリが入力されます。データグリッド上のレコードを変更すると、コンボボックス以外のフォーム上のすべてのフィールドが更新されます。
だから私の質問は:私は、グリッド上で移動するとき保存されたカテゴリを表示するには、コンボボックスを更新するために何をすべきか? カテゴリテーブルではカテゴリに「id」フィールドがあり、フードテーブルには「カテゴリID」フィールドがあります。
私は、XAMLファイルでこれを持っている:私はあなたのコード内の小さな誤りを持って見ることができるように
<ComboBox x:Name="categoryComboBox" Grid.Row="5" Grid.Column="1" Margin="3,4,20,0" Grid.ColumnSpan="3"
ItemsSource="{Binding Source={StaticResource categoryViewSource}}"
SelectedValuePath="CategoryId"
DisplayMemberPath="CatName"
SelectedItem="{Binding CategoryId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Height="25" VerticalAlignment="Top">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
こんにちは、新しいDataGrid行を選択するたびに、コンボボックスのSourceItemsコレクションを更新する必要があります。このコレクションは、ComboBox DataContext内のObservableCollectionにバインドする必要があります。だからあなたはそのコレクションをクリアして再充填する必要があります。 – Ilan
ありがとうございます。 – Zoltan
コンボアイテムソースはItemsSource = "{バインディングソース= {StaticResource categoryViewSource}}"です。アイテムは、ナビゲーション中にコンボボックスで変更(追加/削除)されません。関連する値を表示してください。たとえば、「最初のカテゴリ」、「第2のカテゴリ」の瞬間のコンボボックスアイテム。最初のレコードのカーソルがデータグリッドの場合、コンボは2番目のレコードのカーソルが「2番目のカテゴリ」と表示される場合は「最初のカテゴリ」になります。 – Zoltan