[英]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.