locked
leggere string classe RRS feed

  • Domanda

  • Ciao, sto creando una nuova app:) ma non riesco a fare una cosa, e senza essa non posso andare avanti:(

    ho creato una classe:

    public class class1
        {
            public string Name
            { get; set; }
    
            public string dalton
    
            { get; set; }
    
    
    
    

    la string name serve per creare gli items per una autocompletebox e fin qui sono riuscito a farli visualizzare:

    public List<class1> Elementi = new List<class1>() //elementi per autocolmplete box
                 {
                     new class1(){Name="ossigeno",dalton="16"},
                     new class1(){Name="zolfo", dalton="32"},
                     new class1(){Name="idrogeno", dalton="0"},
                     new class1(){Name="potassio", dalton="0"},
                     new class1(){Name="elio", dalton="0"},
                     
                     
    
    
                 };

    adesso però non riesco a far si che quando seleziono un elemento(ossigeno,zolfo..) una variabile qualsiasi acquiisca il valore dato alla stringa dalton. (questa variabile mi serve dopo per fare una operazione matematica)

    vi metto qua tutto il codice:

    namespace chimica
    {
        public partial class MainPage : PhoneApplicationPage
        {
             public List<class1> Elementi = new List<class1>() //elementi per autocolmplete box
                 {
                     new class1(){Name="ossigeno", dalton="16"},
                     new class1(){Name="zolfo", dalton="32"},
                     new class1(){Name="idrogeno", dalton="0"},
                     new class1(){Name="potassio", dalton="0"},
                     new class1(){Name="elio", dalton="0"},
                     
                     
    
    
                 };
    
             int dal;
            
            public MainPage()
            {
                InitializeComponent();
              
                this.acBox.ItemsSource = Elementi;
                this.elementi2.ItemsSource = Elementi;
                
                
            }
    
           
    
    
           
    
            private void percentuale1_KeyUp(object sender, KeyEventArgs e)
            {
                cento1.Text = percentuale1.Text.ToString();
            }
    
            private void percentuale2_KeyUp(object sender, KeyEventArgs e)
            {
                cento2.Text = percentuale2.Text.ToString();
            }
    
            private void button1_Clic(objectsender,RoutedEventArgs e)
            {
                
            }
    
            private void acBox_SelectionChang(objectsender,SelectionChangedEventArgs e)
            {
                //"dal" = valore dalton(della classe1) dell'elemento selezionato
            }
    
            
           
        }
    }

    grazie mille in anticio a tutti:)
    domenica 2 dicembre 2012 15:59

Risposte

  • Se l'AutoCompleteBox è quello del Windows phone Toolkit puoi fare semplicemente così:

       private void acBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                // così
                var item = e.AddedItems[0] as class1;
    
                //oppure così
                item = acBox.SelectedItem as class1;
            }

    Stefano
    • Contrassegnato come risposta Marco Tarantola lunedì 3 dicembre 2012 20:01
    lunedì 3 dicembre 2012 09:29
    Postatore

Tutte le risposte

  •  private void acBox_SelectionChang(objectsender,SelectionChangedEventArgs e)
     
    {     
        class1 elementSelected =  
    this.listBox.ItemContainerGenerator.ContainerFromItem(this.listBox.SelectedItem)  as class1; 

    String s = elementSelected.dalton;    
     
    }

    Questo dovrebbe funzionare. E' uno dei metodi possibile.

    Consulta la documentazione per individuare l'elemento selezionato.

    Ti passo anche un link di un ottimo tips

    http://www.windowsphonegeek.com/tips/WP7-ListBox-SelectedItem

    Ciao


    domenica 2 dicembre 2012 22:05
    Postatore
  • Se l'AutoCompleteBox è quello del Windows phone Toolkit puoi fare semplicemente così:

       private void acBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                // così
                var item = e.AddedItems[0] as class1;
    
                //oppure così
                item = acBox.SelectedItem as class1;
            }

    Stefano
    • Contrassegnato come risposta Marco Tarantola lunedì 3 dicembre 2012 20:01
    lunedì 3 dicembre 2012 09:29
    Postatore