我有一个简单的Windows窗体,其中包含一个ListView名为的对象list.在表单上,一个按钮使我可以在单击时清空列表list.Items.Clear().这很好用.
现在我有一个单独的类Test,其方法update()在窗体外部的一些事件上调用.在构造表单时,我使用该SetList方法传递对列表的引用.在调试模式下,update()调用我触发的事件,并执行其内容,但不清除我的列表.
为什么是这样?我检查了参考设置是否正确.
class Test
{
private ListView list;
public void setList(ListView list)
{
this.list = list;
}
public void update()
{
this.list.Items.Clear();
}
}
Run Code Online (Sandbox Code Playgroud)
当我通过在update()中放置断点来仔细查看我的列表时,列表会被清理并保持清洁状态.它似乎真的是另一个被修改的列表,但我只有一个,从来没有做过任何新的... ????
使用以下修改的update方法:
public void update()
{
this.list.Items.Clear();
this.list.Update(); // In case there is databinding
this.list.Refresh(); // Redraw items
}
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,很明显您正在修改该list对象的另一个实例.在这种情况下,暂时修改对象的声明,如下所示,看看是否有任何改变.如果是,您需要检查您的代码以确保清除正确的列表实例:
private static ListView list;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9086 次 |
| 最近记录: |