Bitte helfen!Refresh Combobox beim Navigieren auf Datagrid
Ich habe viele Recherchen im Internet gemacht, aber keine Lösung für meine Frage gefunden.
Ich habe eine Form mit Lebensmitteln. Es gibt ein Raster auf dem Formular und damit kann ich auf dem Essenstisch navigieren. Auf dem Bildschirm (nicht im Raster) befindet sich eine Combobox, die die Kategorien enthält. Die Combobox ist mit den Kategorien aus der Kategorietabelle gefüllt. Wenn ich den Datensatz im Datagrid ändere, werden alle Felder im Formular außer der Combobox aktualisiert.
Also meine Frage ist: Was muss ich tun, um die Combobox zu aktualisieren, um die gespeicherte Kategorie zu zeigen, wenn ich auf dem Gitter navigieren? In der Kategorietabelle hat die Kategorie das Feld "id" und in der Nahrungstabelle gibt es ein Feld "categoryid".
Ich habe dies in der XAML-Datei:
<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>
Hallo, Sie sollten Ihre ComboBox SourceItems-Auflistung jedes Mal aktualisieren, wenn Sie die neue DataGrid-Zeile auswählen. Diese Sammlung sollte an eine ObservableCollection innerhalb des ComboBox-DataContext gebunden sein.Sie sollten diese Sammlung also löschen und neu füllen. – Ilan
Vielen Dank für Ihre Antwort. – Zoltan
Die Combo-Elementquelle ist ItemsSource = "{Binding Source = {StaticResource categoryViewSource}}". Die Elemente ändern sich während der Navigation nicht (hinzufügen/entfernen) in der Combobox. Gerade sollte den relevanten Wert anzeigen. Zum Beispiel: die Combobox-Elemente im Moment "Erste Kategorie", "Zweite Kategorie". Wenn sich der Cursor auf dem ersten Datensatz im Datagrid befindet, sollte das Kombinationsfeld "Erste Kategorie" beschlagen, wenn der Cursor auf dem zweiten Datensatz steht, sollte das Kombinationsfeld "Zweite Kategorie" anzeigen. – Zoltan