【问题标题】:Clearing a treeView crash清除 treeView 崩溃
【发布时间】:2011-06-23 02:16:24
【问题描述】:

在 c# wpf 应用程序中,我从列表中加载 treeView,它有一个删除、编辑和添加按钮,用于保存在 textFile 列表中的信息,它还有一个更新按钮,单击它会清除treeView,然后将 textFile 信息重新加载到列表中,然后将列表重新加载到 treeView 中,但是每当我单击更新时,它就会崩溃我的文件:treeView1.Items.Clear();开头的 .Clear() 行之前的所有变量都是列表,还有更多类似于此的 if 语句 if(i == 0) 我只是将它们取出,因为它们都工作相同。谢谢

这里是更新按钮的事件代码

private void buttonUpdate_Click(object sender, RoutedEventArgs e)
{

    name.Clear();
    description.Clear();
    dateStart.Clear();
    dateDue.Clear();
    status.Clear();
    priority.Clear();
    details.Clear();

    using (StreamReader sr = new StreamReader("TaskList.txt"))
    {
        int i = 0;
        while (!sr.EndOfStream)
        {
            //if its on the first line of a task
            if (i == 0)
            {
                name.Add(sr.ReadLine());
                ++i;
            }
            else if (i == 1)
            {
                description.Add(sr.ReadLine());
                ++i;
            }
            else if (i == 2)
            {
                dateStart.Add(sr.ReadLine());
                ++i;
            }
            else
            {
                details.Add(sr.ReadLine());
                i = 0;
            }
        }

        treeView1.Items.Clear();

        for (int j = 0; j < name.Count; ++j)
        {
            TreeViewItem taskTree = new TreeViewItem();
            taskTree.Tag = name[j];
            taskTree.Header = name[j];
            taskTree.Items.Add(description[j]);
            taskTree.Items.Add(dateStart[j]);
            taskTree.Items.Add(dateDue[j]);
            taskTree.Items.Add(status[j]);
            treeView1.Items.Add(taskTree);
        }
        sr.Close();
    }
}

【问题讨论】:

  • @SLaks 编程停止响应,然后当我单击调试时,我得到: main.exe 中发生了“System.NullReferenceException”类型的未处理异常并将我发送到这一行:string selectName = ((TreeViewItem)(treeView1.SelectedItem)).Header.ToString();这是在我的 treeView_SelectedItemChanged 事件代码中

标签: c# list treeview


【解决方案1】:

清除树形视图后,SelectedItemnull

【讨论】:

  • 谢谢,有没有办法解决这个问题,所以我可以清除 treeView,因为在我的更新按钮中我不使用 selectedItem
  • @Beef:在处理程序中检查null
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多