none
诡异的应用程序崩溃 RRS feed

  • 问题

  • wpf 4.0中,在listbox中连续多次点击,会异常当前应用程序崩溃。请高手指点是什么原因?难道是bug?
    
    <StackPanel HorizontalAlignment="Center"> 
    
        <TextBox Name="textBox1" /> 
    
        <ListBox Margin="10" SelectionMode="Multiple" Name="listbox1" SelectionChanged="listbox1_SelectionChanged"> 
    
           <ListBoxItem>Asp.Net</ListBoxItem> 
    
           <ListBoxItem>VB.NET</ListBoxItem> 
    
           <ListBoxItem>XHTML</ListBoxItem> 
    
         </ListBox> 
    
       </StackPanel> 
    <pre lang="x-c#">private void listbox1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    
        { 
    
          textBox1.Text = (listbox1.SelectedItem as ListBoxItem).Content.ToString(); 
    
        } 
    
    
    2010年11月21日 11:34

答案

  • 确保这个不为null?(listbox1.SelectedItem as ListBoxItem)
    2010年11月22日 9:32
  • 你好,

    当选中项发生改变并且没有项被选中时,listbox1.SelectedItem as ListBoxItem为null. 此时(listbox1.SelectedItem as ListBoxItem).Content 会抛出“Object reference not set to an instance of an object.” 异常。

    希望这对你有帮助。

    Best regards,

    Min


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
    2010年11月23日 5:50
    版主
  • 非bug,请做必要的null检查:

    ListBoxItem item = listbox1.SelectedItem as ListBoxItem;
    if (item != null)
      textBox1.Text = item.Content.ToString(); 
    
    Bob Bao
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Are you looking for a typical code sample? Please download All in One Code Framework !

    如果有回复帮助并解决了您的问题,请点击 “标记为答复”,如果没有没有帮助,请随时点击“取消答复标记”
    你在为寻找代码示例而苦恼吗?赶快来下载 All in One Code Framework 微软一站式代码框架 吧!
    2010年11月24日 2:13
    版主

全部回复

  • 是我的问题太弱了吗?大家都懒得回答?msdn上的示例也是这样的。

    2010年11月22日 9:07
  • 确保这个不为null?(listbox1.SelectedItem as ListBoxItem)
    2010年11月22日 9:32
  • 你好,

    当选中项发生改变并且没有项被选中时,listbox1.SelectedItem as ListBoxItem为null. 此时(listbox1.SelectedItem as ListBoxItem).Content 会抛出“Object reference not set to an instance of an object.” 异常。

    希望这对你有帮助。

    Best regards,

    Min


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
    2010年11月23日 5:50
    版主
  • 非bug,请做必要的null检查:

    ListBoxItem item = listbox1.SelectedItem as ListBoxItem;
    if (item != null)
      textBox1.Text = item.Content.ToString(); 
    
    Bob Bao
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Are you looking for a typical code sample? Please download All in One Code Framework !

    如果有回复帮助并解决了您的问题,请点击 “标记为答复”,如果没有没有帮助,请随时点击“取消答复标记”
    你在为寻找代码示例而苦恼吗?赶快来下载 All in One Code Framework 微软一站式代码框架 吧!
    2010年11月24日 2:13
    版主