【问题标题】:I need to be able to depopulate a listbox我需要能够取消填充列表框
【发布时间】:2012-07-09 18:02:00
【问题描述】:

我知道出了什么问题,但我不知道如何解决。

我得到一个

NullReferenceException: 对象引用未设置为对象的实例。

我收到此错误是因为我有一个已填充的 ListBox,当您在 ListBox 中选择一个文件名时,该文件的内容会显示在一个文本框中。

现在,我有一个取消填充按钮,可以清除 ListBox 中的所有文件,如果选择了一个文件,则会出现错误。

我希望能够单击取消填充按钮并清除两个框。

代码:

private void DE_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    myScaleTransform2.ScaleX = myScaleTransform2.ScaleX * .9833333333333333333333333333333333333333333333333333333333;
    myScaleTransform2.ScaleY = myScaleTransform2.ScaleY * .9833333333333333333333333333333333333333333333333333333333;
    lbz.Items.Clear();
}

private void lbz_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    tb1.Text = File.ReadAllText(lbz.SelectedItem.ToString());
}

【问题讨论】:

  • 当你清除项目时,SelectionChanged 被解雇,lbz.SelectedItem 现在为空。所以不,你不知道“出了什么问题”:p
  • =P 我知道。调试器这样告诉我,-.- 我只是一个菜鸟,不知道如何解决它... .

标签: c# silverlight nullreferenceexception


【解决方案1】:

您必须检查是否实际设置了 SelectedItem

private void lbz_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if( lbz.SelectedItem != null ){
        tb1.Text = File.ReadAllText(lbz.SelectedItem.ToString());
    } else {
        tb1.Text = "No File Selected";
    }
}

【讨论】:

    【解决方案2】:
    private void lbz_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if( lbz.SelectedItem != null ){
            if(File.Exist(lbz.SelectedItem.ToString())){
                tb1.Text = File.ReadAllText(lbz.SelectedItem.ToString());
            }
            else
            {
                tb1.Text = "File is not exist in the selected Path";
            }
        } else {
            tb1.Text = "No File Selected";
        }
    }
    

    请检查您的列表项是否包含文件路径?

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 1970-01-01
      • 2019-09-30
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多