2011-12-15 1 views
0

Avez-vous consulté des informations détaillées en ligne et n'avez rien trouvé pour résoudre ce problème. Je suis très nouveau à cela, alors excuses si cela est si basique pour vous. Vous m'aidez à apprendre :)NullReferenceException n'a pas été gérée

L'application fonctionne bien - MAIS si l'utilisateur sélectionne NOTHING dans les listes et à la place il appuie simplement sur le bouton 'Do We Match' - qui bloque le programme. J'en ai besoin pour lancer une erreur en demandant qu'ils cliquent sur une étoile dans chaque liste (l'erreur officielle est 'Exception de Référence Null n'est pas gérée).

code pour cette partie jusqu'à présent:

 // Method for starsign combinations 
    public void Combinations() 
    { 

     ListBoxItem lbi = (ListBoxItem)yourListBox.SelectedItem; 
     string yourListBoxValue = (string)lbi.Content; 

     ListBoxItem lbi2 = (ListBoxItem)partnerListBox.SelectedItem; 
     string partnerListBoxValue = (string)lbi2.Content; 



     string listBoxValuesCombined = yourListBoxValue + partnerListBoxValue; 

     if ((listBoxValuesCombined == "Aries" + "Aries") || (listBoxValuesCombined == "Aries" + "Aries")) 
      resultTextBlock.Text = "On Fire - this is a hot combination!"; 

J'espère que quelqu'un peut aider, je vous remercie.

Répondre

0

Vérifiez les propriétés SelectedItem de vos ListBox avant d'accéder à la propriété Content de chaque ListBoxItem. Puisque vous voulez que les deux ListBoxes d'avoir une valeur avant de continuer, mettre ce chèque nul en haut de votre méthode Combinaisons:

public void Combinations() 
{ 
    if (yourListBox.SelectedItem == null || partnerListBox.SelectedItem == null) 
    { 
    resultTextBlock.Text = "Please select a sign for yourself and your partner."; 
    return; 
    } 

S'il n'y a pas de valeur sélectionnée dans la zone de liste, la propriété SelectedItem sera nulle . Ainsi, lorsque vous obtenez le ListBoxItem ci-dessus:

ListBoxItem lbi = (ListBoxItem)yourListBox.SelectedItem; 

lbi se termine par la valeur null. L'exception NullReferenceException est levée lorsque vous essayez d'obtenir lbi.Content. Puisque lbi est nul, il n'a pas d'objet pour obtenir la propriété Content.

+0

Merci beaucoup, fonctionne comme un charme! :RÉ – AppGirl

0
public void Combinations() 
{ 
    if ((ListBoxItem)yourListBox.SelectedItem == null 
     || (ListBoxItem)partnerListBox.SelectedItem == null) return; 

    ListBoxItem lbi = (ListBoxItem)yourListBox.SelectedItem; 
    string yourListBoxValue = (string)lbi.Content; 

    ListBoxItem lbi2 = (ListBoxItem)partnerListBox.SelectedItem; 
    string partnerListBoxValue = (string)lbi2.Content; 



    string listBoxValuesCombined = yourListBoxValue + partnerListBoxValue; 

    if ((listBoxValuesCombined == "Aries" + "Aries") || (listBoxValuesCombined == "Aries" + "Aries")) 
     resultTextBlock.Text = "On Fire - this is a hot combination!"; 
+0

Merci beaucoup! : D – AppGirl

Questions connexes