2017-02-28 1 views
0
Ich habe eine Entity-Tabelle, die ISO-Ländercodes und ihre Beschreibungen auflistet, um eine ComboBox aufzufüllen. Ich habe dann eine andere Tabelle, die eine 'Nationalität' auf den ausgewählten Wert der ComboBox setzt. Ich habe keine Fremdschlüssel-Einschränkungen zwischen den IsoCountryCodes und meiner anderen Tabelle.

Set ComboBox Ausgewählter Artikel/Text zu Wert Pfad der ItemsSource

Ich möchte in der Lage sein, das SelectedItem der ComboBox auf den ausgewählten IsoCountryCode, aber ich möchte den SelectedValue in das Feld 'Nationalität' speichern.

Ich habe versucht, das SelectedItem der ComboBox zu meinem Feld 'Nationalität' (String) zu setzen, aber es tut nur eine ToString() auf dem IsoCountryCode. Wenn ich anstelle von SelectedItem das Feld "Text" einstelle, speichert es den DisplayPath-Wert im Feld "Nationalität".

Ich habe mich gefragt, ob es eine Möglichkeit gibt, den ValuePath-Wert in das Feld ohne Fremdschlüsseleinschränkungen zu speichern, während dem Benutzer immer noch ein gültiger DisplayPath angezeigt wird?

Beispiel IsoCountryCode Tabelle:

IsoCode  IsoDescription 

'GBR'  'United Kingdom' 
'USA'  'United States of America' 

Beispiel der anderen Tabelle:

PassengerId PassengerName PassengerNationality PassengerDocumentIssuingCountry 
1   'Carter, John' 'GBR'    'USA' 

Und meine aktuellen XAML:

<xctk:WatermarkComboBox x:Name="uxNationalityCmbo" Margin="0,0,5,5" Watermark="Nationality" 
     Grid.Row="2" ItemsSource="{Binding CountryCodeCollection}" SelectedValuePath="IsoCode" DisplayMemberPath="IsoDescription" 
     IsTextSearchEnabled="True" Text="{Binding SelectedPassenger.PassengerNationality, TargetNullValue=''}"/> 

den ausgewählten Wert ändern jetzt in die USA würde würde Ändern Sie die Entität PassengerNationality in "United States of America", während ich "USA"brauche

Antwort

1

sollten Sie binden die SelectedValue Eigenschaft auf die PassengerNationality Eigenschaft source:

<xctk:WatermarkComboBox x:Name="uxNationalityCmbo" Margin="0,0,5,5" Watermark="Nationality" 
    Grid.Row="2" ItemsSource="{Binding CountryCodeCollection}" SelectedValuePath="IsoCode" DisplayMemberPath="IsoDescription" 
    IsTextSearchEnabled="True" SelectedValue="{Binding SelectedPassenger.PassengerNationality, TargetNullValue=''}"/> 
Verwandte Themen