Ich beiß mir hier die Zähne an folgender Aufgabe aus:
Ich hab einen Datareader, der eine Combobox befüllen soll. Hier hab ich 2 Spalten - die Id und die Bezeichnung.
Für den User würde die Anzeige der Bezeichnung reichen, wobei beide Spalten besser wären. Die Id brauch ich für die Auswertung der Selektion. Die Combobox wird korrekt angezeigt.
Meine 2 Fragen:
Wie erhalte ich die Id (=S1SHK) aus der selektierten Zeile, nachdem die selektierte Zeile kein Einzelwert ist?
Kann ich beim "betanken" der Combobox die Vorauswahl nur durch den Index als Zeilenzähler vornehmen, oder geht es auch direkt über die Id "S1SHK"?
Mein bisheriger Ansatz sieht folgendermaßen aus:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| <Window.Resources> <DataTemplate x:Key="cbxProduktionsketteTemplate"> <StackPanel Orientation="Horizontal"> <Border BorderThickness="1" Width="200" BorderBrush="Gray" Padding="0"> <TextBlock Text="{Binding Path=S1SHK}"/> </Border> <Border BorderThickness="1" Width="200" BorderBrush="Gray" Padding="0"> <TextBlock Text="{Binding Path=S1BEZ}"/> </Border> </StackPanel> </DataTemplate> </Window.Resources>
<ComboBox x:Name="cbxProduktionskette" HorizontalAlignment="Left" Margin="60,0,0,0" BorderThickness="1" VerticalAlignment="Top" Height="20" Width="200" Background="Yellow" ItemTemplate="{StaticResource cbxProduktionsketteTemplate}" Style="{DynamicResource ComboBoxStyleGelb}" SelectionChanged="cbxProduktionskette_SelectionChanged"> <ComboBox.ItemsPanel> <ItemsPanelTemplate> <StackPanel Background="LightYellow" Orientation="Vertical"/> </ItemsPanelTemplate> </ComboBox.ItemsPanel> </ComboBox> |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| while (myReader.Read()) { temptbl.Add(new cbxProduktionskettenzeile() { S1SHK = myReader.GetString(0).ToString(), S1BEZ = myReader.GetString(1).ToString() }); }
cbxProduktionskette.ItemsSource = temptbl;
private void cbxProduktionskette_SelectionChanged(object sender, SelectionChangedEventArgs e) { }
public class cbxProduktionskettenzeile { public string S1SHK { get; set; } public string S1BEZ { get; set; } } |
Besten Dank für eure Unterstützung ...
Moderiert von Th69: XML-Tags hinzugefügt
Moderiert von Th69: C#-Tags hinzugefügt