簡體   English   中英

清空ListView

[英]Empty a ListView

我有一個簡單的Windows窗體,其中包含一個名為listListView對象。 在表單上,​​一個按鈕使我能夠在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM