C# ListView.Refresh';清除';列表视图
我的代码在操作中循环,并向listview控件添加反馈。以前,我的代码工作正常,但今天有些变化 listview控件开始时如下所示: …但在我发出Update()或Refresh()调用后,它不会显示我添加的项,而是呈现如下所示: 此时,控件仍处于启用状态且可见。事实上,我的代码与它的唯一交互就是添加新项和Update() 要添加项目,我将使用以下命令:C# ListView.Refresh';清除';列表视图,c#,regex,file-io,directory,case-insensitive,C#,Regex,File Io,Directory,Case Insensitive,我的代码在操作中循环,并向listview控件添加反馈。以前,我的代码工作正常,但今天有些变化 listview控件开始时如下所示: …但在我发出Update()或Refresh()调用后,它不会显示我添加的项,而是呈现如下所示: 此时,控件仍处于启用状态且可见。事实上,我的代码与它的唯一交互就是添加新项和Update() 要添加项目,我将使用以下命令: lvwDrawings.Items.Add(new ListViewItem(new string[] { drawing.Par
lvwDrawings.Items.Add(new ListViewItem(new string[]
{
drawing.PartNo,
drawing.Revision.ToString(),
drawing.Issue,
drawing.DrgTypeText,
errorStatus !=null ? errorStatus : drawing.Status,
drawing.Filepath
}));
如果我在这里引入了一些问题,我将使用更简单的
lvwDrawings.Items.Add(“test”)进行测试代码>,但结果相同。如果我做一个快速观察,控件会正确地告诉我它包含x个项目…好的,我发现了问题-由于一些未知的原因,我以前在这里有lvwDrawings.items.Clear()
要在不同的运行之间清除列表,我不知何故以lvwDrawings.Clear()
结束。这不仅会清除listview中的项目,还会清除列
有两个方面很奇怪:当我试图添加一个包含特定列的ListViewItem时,如果没有任何列,它会反对它,而且,当我进行更改时,我认为我到底在做什么
适度有趣的转移:
我通过在第一个列表视图下面创建第二个列表视图来发现问题,并一直工作到遇到问题为止。作为该过程的一部分,我在设计中添加了列,其中一列我称为Path
,设计者并不反对
但是,在代码中,对静态类路径(例如Path.GetDirectoryName()
)的方法的引用导致错误-“ColumnHeader路径没有方法”xxx“或类似方法。显然,它假设当我引用Path时,我引用的是listview中的列
此外,当我将该列重命名为“FullPath”时,它重命名了代码中对Path的所有引用,例如FullPath.GetDirectoryName()
…听起来像是一个暂时的小故障?尝试重新启动。试着做一个完整的构建。尝试禁用可能影响系统上windows的任何其他程序。您是否更改了任何项目属性?添加任何新的引用?如果创建一个新的空白项目并将代码粘贴到其中,会发生这种情况吗?我尝试重新启动VS,但没有更改。我现在尝试重新启动。发生了许多其他变化,但与此控制无关。我一直在想可能会引起怀疑的更改…您是否尝试过使用lvwDrawings.RedrawItems?创建新的ListViewItem后,新项目是否有任何null
属性?@Dan-o-不是暂时的小故障-只是我的一个错误。PEBCAK:很好地诊断和解决了您的问题!很高兴看到人们练习他们的调试技能。哦,我的调试技能得到了足够的练习。可悲的是