[英]Empty a ListView
我有一個簡單的Windows窗體,其中包含一個名為list
的ListView
對象。 在表單上,一個按鈕使我能夠在list.Items.Clear()
上單擊時清空列表。 這很好用。
現在我有一個單獨的類Test
,其方法update()
在窗體外部的一些事件上調用。 在構造表單時,我使用SetList
方法傳遞對列表的SetList
。 在調試模式下,對我觸發的事件調用update()
,並執行其內容,但不清除我的列表。
為什么是這樣? 我檢查了參考設置是否正確。
class Test
{
private ListView list;
public void setList(ListView list)
{
this.list = list;
}
public void update()
{
this.list.Items.Clear();
}
}
當我通過在update()中放置斷點來仔細查看我的列表時,列表會被清理並保持清潔狀態。 它似乎真的是另一個被修改的列表,但我只有一個,從來沒有做過任何新的... ????
使用以下修改的update
方法:
public void update()
{
this.list.Items.Clear();
this.list.Update(); // In case there is databinding
this.list.Refresh(); // Redraw items
}
如果這不起作用,很明顯您正在修改list
對象的另一個實例。 在這種情況下,暫時修改對象的聲明,如下所示,看看是否有任何改變。 如果是,您需要檢查您的代碼以確保清除正確的列表實例:
private static ListView list;
在我的例子中,我沒有使用數據綁定,而是使用Add()在循環中顯式添加項。 在我看來, ListView.Clear()
和ListView.Items.Clear()
不起作用。
原來... ListView控件實際上被清除,但我一直沒清除輸入列表,所以我得到有效清理,然后重新填充ListView控件與先前清除的項目。
有時這是最簡單的事情...... D'OH!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.