2012-11-14 25 views
7

मेरे पास एक कॉम्बोबॉक्स है जिसने कॉम्बोबॉक्स.इटेम्स सूची घोषित की है (दूसरे शब्दों में, आइटमसोर्स के माध्यम से गतिशील रूप से बाध्य नहीं है)। मैं नीचे दिखाए गए इसी आईडी के लिए प्रदर्शन नाम और कॉम्बोबॉक्स Item.Tag के लिए कॉम्बोबॉक्स Item.Content का उपयोग करता हूं।डब्ल्यूपीएफ एमवीवीएम कॉम्बोबॉक्स टैग चयन

मैं चयनित आइटम वापसी का टैग कैसे प्राप्त करूं, सामग्री नहीं? मैंने 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> 

उत्तर

8

आप अपने 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> 
+1

बिल्कुल सही! धन्यवाद एक गुच्छा! – NickV

+0

आपका स्वागत है :) – kmatyaszek

0

बता गया एक नाम "एक्स: नाम =" दें:

इस बंधन का प्रयास करें abcComboBox "और फिर कोड पक्ष में स्ट्रिंग टैग = (ComboBoxItem रूप abcComboBox.SelectedItem) .Tag.ToString() ;

संबंधित मुद्दे