我有一个简单的Windows窗体,其中包含一个名为“list”的ListView对象和其他组件。在该窗体上,一个按钮使我能够通过单击“list.Items.Clear()”来清空列表。这很好用。
现在我有一个名为“Test”的单独类,其方法“update()”在某些外部事件上被调用。在构建窗体时,我使用“SetList”方法传递了对列表的引用。在调试模式下,我触发事件时会调用“update()”,并执行其内容,但我的列表没有被清除。
为什么会这样?引用已经正确设置,我已经检查过了。
现在我有一个名为“Test”的单独类,其方法“update()”在某些外部事件上被调用。在构建窗体时,我使用“SetList”方法传递了对列表的引用。在调试模式下,我触发事件时会调用“update()”,并执行其内容,但我的列表没有被清除。
为什么会这样?引用已经正确设置,我已经检查过了。
class Test
{
private ListView list;
public void setList(ListView list)
{
this.list = list;
}
public void update()
{
this.list.Items.Clear();
}
}
当我通过在update()函数中设置断点来仔细查看我的列表时,列表被清除并保持清除状态。它真的看起来像是另一个列表被修改了,但我只有一个列表,并且从未对其进行任何新的操作... ????
list.DataSource = null; list.DataBind();
。 - sllthis.list.Items.Clear();
后面的下一行设置断点,并在调试器中查看是否已清除 Items,也许是一些外部代码添加了项目,谁知道在您的应用程序中会发生什么... - sll