2017-01-08 1 views
0

Dans mon programme, j'ai stocké des valeurs dans la liste. J'ai besoin de retourner deux de ces valeurs d'une zone de liste déroulante. J'ai cherché sur internet mais je n'ai pas trouvé la réponse. S'il vous plaît donnez-moi quelques conseils. Voici mon code:Renvoyer deux valeurs de la zone de liste déroulante

Les valeurs Liste:

public class ActualCurrencyBoxData 
{ 
    public string displayValue { get; private set; } 
    public decimal currencyCourse { get; set; }  
    public int currencyConverter { get; set; } 

    public ActualCurrencyBoxData(string ncurrencyName, string ncurrencyCode, decimal ncurrencyCourse, int ncurrencyConverter) 
    { 
     displayValue = ncurrencyName +" (" +ncurrencyCode+ ")"; 
     currencyCourse = ncurrencyCourse;   
     currencyConverter = ncurrencyConverter;   
    } 

} 

j'ai pu retourner une seule valeur (actualCurrencyCourse, je dois aussi CurrencyConverter):

List<ActualCurrencyBoxData> checkBoxVal = new List<ActualCurrencyBoxData>(); 

public void CurrencyBoxLoad(object sender, RoutedEventArgs e) 
{ 
    var comboBox = sender as ComboBox; 
    comboBox.ItemsSource = checkBoxVal; 
    comboBox.DisplayMemberPath = "displayValue"; 
    comboBox.SelectedValuePath = "currencyCourse";         
} 

private void Count_Click(object sender, RoutedEventArgs e) 
{  
    actualCurrencyCourse = ActualCurrencyBox.SelectedValue.ToString()); 
} 
+0

Avoir une toilette k à http://wpftoolkit.codeplex.com/wikipage?title=CheckComboBox&referringTitle=Home – Fruchtzwerg

Répondre

2

Vous pouvez utiliser le SelectedItem propriété à la place pour obtenir l'objet de l'objet sélectionné:

private void Count_Click(object sender, RoutedEventArgs e) 
{  
    actualCurrencyCourse = ((ActualCurrencyBoxData)ActualCurrencyBox.SelectedItem).currencyCourse; 
    actualCurrencyConverter = ((ActualCurrencyBoxData)ActualCurrencyBox.SelectedItem).currencyConverter; 
} 
+0

Merci pour la réponse, j'ai essayé celui-ci et obtenir cette erreur: ActualCurrencyBoxData 'ne contient pas de définition pour' CurrencyConverter 'et aucune méthode d'extension' CurrencyConverter 'acceptant un premier argument de type' ActualCurrencyBoxData 'pourrait être trouvé (manque-t-il une directive using ou une référence d'assembly?) –

+0

woops, on dirait que j'ai mal interprété le boîtier de votre nom de propriété. J'utilise généralement le cas de chameau supérieur (aka cas de Pascal) pour les propriétés de classe. Les habitudes sont difficiles à casser :) Corrigez le boîtier (comme je viens de le faire dans mon premier post) pour correspondre au vôtre. En outre, si vous êtes intéressé: http://wiki.c2.com/?PascalCase – ryancdotnet

+0

Oh, je ne peux pas croire que je l'ai manqué. Ça marche, merci je vais y jeter un coup d'oeil. –