I have a ComboBox that has a declared ComboBox.Items list (in other words, not dynamically bound via ItemsSource). I use the ComboBoxItem.Content for the display name and ComboBoxItem.Tag for the corresponding Id as shown below.
How do I get the Tag of the selected item return and not the content? I tried SelectedItemValuePath="Tag"
, but that does not work.
<ComboBox Visibility="{Binding Path=ShowOutpatientFields, Converter=
{StaticResource
boolTovisConverter}}" Grid.Row="5" Grid.Column="2" Margin="0,2,0,2"
Text="{Binding Path=NewCase.ServiceType, ValidatesOnDataErrors=true,
NotifyOnValidationError=true}" SelectedValuePath="Tag">
<ComboBox.Items>
<ComboBoxItem Content="Hospice" Tag="33" />
<ComboBoxItem Content="Hospital Outpatient" Tag="36" />
<ComboBoxItem Content="Hospital Inpatient Extension" Tag="128" />
<ComboBoxItem Content="Maternity" Tag="52" />
</ComboBox.Items>
</ComboBox>
If you have this property in your ViewModel class:
private string _serviceType;
public string ServiceType
{
get { return _serviceType; }
set { _serviceType = value; }
}
Of course you can have property of type int and it will be working too.
Try this binding:
<ComboBox VerticalAlignment="Center" Margin="0,2,0,2"
SelectedValue="{Binding ServiceType}"
SelectedValuePath="Tag">
<ComboBox.Items>
<ComboBoxItem Content="Hospice" Tag="33" />
<ComboBoxItem Content="Hospital Outpatient" Tag="36" />
<ComboBoxItem Content="Hospital Inpatient Extension" Tag="128" />
<ComboBoxItem Content="Maternity" Tag="52" />
</ComboBox.Items>
</ComboBox>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With