C#清除ListView中的所有项目

时间:2009-01-12 13:18:51

标签: c# listview

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

myListView.Items.Clear();

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

我通过将数据源设置为数据表来填充我的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();
    }

12 个答案:

答案 0 :(得分:22)

怎么样

DataSource = null;
DataBind();

答案 1 :(得分:20)

试试这个......

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

答案 2 :(得分:6)

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

yourlistview.ItemsSource = null;

答案 3 :(得分:4)

我的猜测是Clear()导致发送Changed事件,从而触发从数据源自动更新列表视图。 所以这是一个功能,而不是一个bug ;-)

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

答案 4 :(得分:2)

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

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

答案 5 :(得分:2)

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

答案 6 :(得分:1)

试试这个:

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

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

答案 10 :(得分:0)

这有点晚了,但这至少对我有用UWP

myListView.ItemsSource = null;

答案 11 :(得分:-1)

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