Eine Silverligth Combobox hat keine direkte Möglichkeit anhand eines selektierten Eintrages den Key dazu zu finden. Aber ich kann Auflistungen von komplexen Objekten an eine Combobox binden. Damit kann man genauer betrachtet sogar viel coolere Sachen anstellen.
In meinem Fall kommt eine Liste komplexer Objekte aus einem ADO.NET Dataservice.
combobox1.itemssource = llSessions
llSessions besitzt Eigenschaften wie Title und SessionID. SessionID ist wiederum kein einfaches Objekt sondern sogar eine GUID. Durch das Templating von XAML kann man nun recht detailiert festlegen wie die Drop Down Liste aussehen soll. Im folgenden Beispiel sehr einfach den Title text darstellen
<ComboBox x:Name="combobox1"
SelectionChanged="ComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Titel}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Das Objekt wird dann über einen Cast wieder zurückgeholt ich man kann dann auf die gewählte ID zugreifen.
Private Sub ComboBox_SelectionChanged(ByVal sender As System.Object,
ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
MessageBox.Show(CType(combobox1.SelectedItem, eventsModel.Sessions).SessionID.ToString)
End Sub