8

宣言されたComboBox.Itemsリストを持つComboBoxがあります(つまり、ItemsSourceを介して動的にバインドされていません)。以下に示すように、表示名にはComboBoxItem.Contentを使用し、対応するIDにはComboBoxItem.Tagを使用します。

コンテンツではなく、選択したアイテムのタグを返すにはどうすればよいですか?試し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>
4

2 に答える 2

9

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>
于 2012-11-14T16:01:20.847 に答える
0

コンボボックスに「x:Name = "abcComboBox"」という名前を付けてから、コード側で文字列tag =(abcComboBox.SelectedItem as ComboBoxItem).Tag.ToString();

于 2015-12-11T14:21:42.233 に答える