簡體   English   中英

將ComboBox選定的項目/文本設置為ItemsSource的值路徑

[英]Set ComboBox Selected Item/Text to Value path of ItemsSource

我有一個實體表,其中列出了ISO國家/地區代碼及其說明,以便填充ComboBox。 然后,我還有另一個表,將“國籍”設置為ComboBox的選定值。 我在IsoCountryCodes和其他表之間沒有外鍵約束。

我希望能夠將ComboBox的SelectedItem設置為選定的IsoCountryCode,但是我想將SelectedValue保存到“國籍”字段。

我嘗試將ComboBox的SelectedItem設置為“ Nationality”(字符串)字段,但它只是在IsoCountryCode上執行ToString()。 當我設置“文本”字段而不是SelectedItem時,它會將DisplayPath值保存到“國籍”字段。

我想知道是否有一種方法可以將ValuePath值保存到沒有任何外鍵約束的字段中,同時仍向用戶顯示有效的DisplayPath?

IsoCountryCode表示例:

IsoCode     IsoDescription

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

另一個表的示例:

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

而我當前的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=''}"/>

現在將所選值更改為USA會將實體PassengerNationality更改為“ United States of America”,而我需要使用“ USA”

您應該將SelectedValue屬性綁定到PassengerNationality源屬性:

<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=''}"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM