C# WPF MVVM组合框标记选择
我有一个ComboBox,它有一个声明的ComboBox.Items列表(换句话说,不是通过ItemsSource动态绑定的)。我使用ComboBoxItem.Content作为显示名称,使用ComboBoxItem.Tag作为相应的Id,如下所示 如何获取所选项目返回的标记而不是内容?我尝试了C# WPF MVVM组合框标记选择,c#,wpf,mvvm,combobox,C#,Wpf,Mvvm,Combobox,我有一个ComboBox,它有一个声明的ComboBox.Items列表(换句话说,不是通过ItemsSource动态绑定的)。我使用ComboBoxItem.Content作为显示名称,使用ComboBoxItem.Tag作为相应的Id,如下所示 如何获取所选项目返回的标记而不是内容?我尝试了SelectedItemValuePath=“Tag”,但没有成功 <ComboBox Visibility="{Binding Path=ShowOutpatientFields, Con
SelectedItemValuePath=“Tag”
,但没有成功
<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>
如果ViewModel类中有此属性:
private string _serviceType;
public string ServiceType
{
get { return _serviceType; }
set { _serviceType = value; }
}
当然,您可以拥有int类型的属性,它也可以工作
尝试此绑定:
<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>
给组合框起一个名称“x:name=“abcComboBox”,然后在代码端
string tag=(abcComboBox.SelectedItem作为ComboBoxItem)。tag.ToString()