C#清除ListView中的所有项目

我尝试清除listview,但clear方法不起作用:

myListView.Items.Clear(); 

这不起作用。 当我在这一行放置一个断点时,该行被执行,但我的listview不是空的。 怎么会??

我通过将其数据源设置为数据表来填充我的列表视图。

我现在的解决方案是将数据源设置为空数据表。

我只是想知道为什么清楚不做这个伎俩?

我使用母版页。 这里是按下按钮时内容页面的一些代码。 SearchTitle方法填充ListView。

相关代码:

  protected void Zoek() { // Clear listbox ListView1.DataSource = new DataTable(); ListView1.DataBind(); switch (ddlSearchType.SelectedValue) { case "Trefwoorden": SearchKeyword(); break; case "Titel": SearchTitle(); break; case "Inhoud": SearchContent(); break; } } 

填充ListView的方法

  private void SearchTitle() { // Make panel visible pnlResult.Visible = true; pnlKeyword.Visible = false; Search Search = new Search(txtSearchFor.Text); ListView1.DataSource = Search.SearchTitle(); ListView1.DataBind(); } 

怎么样

 DataSource = null; DataBind(); 

试试这个 …

 myListView.DataSource = null; myListView.Items.Clear(); 

我对此进行了搜索,我正在使用WPF c#。 如果您在这里也在寻找WPF解决方案,请使用以下内容:

yourlistview.ItemsSource = null;

我的猜测是Clear()导致发送Changed事件,从而触发从数据源自动更新listview。 所以这是一个function,而不是一个bug 😉

您是否尝试过myListView.Clear()而不是myListView.Items.Clear() ? 也许这更好。

不要打扰Clear()。 就这样做:ListView.DataSource = null; ListView.DataBind();

关键是数据绑定(); 每次为我工作。

问题出现是因为您正在尝试清除整个列表框。 只需使用listView1.Items.Clear();

试试这个:

 myListView.ItemsSource = new List< DictionaryEntry >(); 

我建议从基础DataTable中删除行,或者如果不再需要数据表,请将数据源设置为null。

可能你的代码有效,但是在你清除它之后会在某个地方反弹。 确保不是这种情况。 如果您提供一些代码会更有帮助。 你在哪里设置数据源? 你在哪里数据绑定? 你在哪里清理清单?

只是使用清晰的方法就像一个魅力的作品。 ListView1.Items.Clear()我认为如果它不起作用,它可能是您放置此代码的位置。 也可以尝试使数据源无效。

 listView.Items.Clear() listView.Refresh() 

/ e由于缺乏解释而更新。 通常情况下,如果发生紧急事件/方法,Clear()是不够的。 最好使用Clear()后面的Refresh()更新视图,以便立即反映listView清除。 无论如何,这已经解决了我的相关问题。