2011-12-15 93 views
0

在网上查看了大量的信息,但没有找到任何解决此问题的方法。我对此很新,很抱歉,如果这对你来说非常基本。你正在帮助我学习:)NullReferenceException未处理

该应用程序运行正常 - 但如果用户从列表框中选择NOTHING,而只是点击'我们匹配'按钮 - 这会导致程序崩溃。我需要它抛出一个错误,要求他们点击每个列表中的星标(官方错误是'空引用异常未处理')。

代码的那部分至今:

 // 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!"; 

我希望有人能帮助,谢谢。

回答

0

在访问每个ListBoxItem的Content属性之前,请检查ListBoxes的SelectedItem属性。既然你想两个ListBox有一个值,然后再继续,把这个检查空你的组合方法的顶部:

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

如果没有在列表框中选择的值,那么SelectedItem属性将是无效的。因此,当您获得上面的ListBoxItem时:

ListBoxItem lbi = (ListBoxItem)yourListBox.SelectedItem; 

lbi以null结束。当你尝试获取lbi.Content时抛出NullReferenceException。由于lbi为空,因此它不具有从中获取Content属性的对象。

+0

非常感谢你,作品像魅力! :d – AppGirl 2011-12-15 22:59:52

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

谢谢,非常感谢! :D – AppGirl 2011-12-15 22:59:25

相关问题