C # Очистить все элементы в ListView - PullRequest
23 голосов
/ 12 января 2009

Я пытаюсь очистить свой список, но метод очистки не работает:

myListView.Items.Clear();

Это не работает. Когда я ставлю точку останова в этой строке, строка выполняется, но мой список не пустой. Как получилось ??

Я заполняю свой список просмотра, устанавливая его источник данных как источник данных.

Мое решение теперь состоит в том, чтобы установить источник данных в пустой источник данных.

Мне просто интересно, почему ясно не делают трюк?

Я использую главную страницу. Вот некоторый код страницы содержимого при нажатии кнопки. Метод 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();
    }

Ответы [ 11 ]

22 голосов
/ 12 января 2009

Как насчет

DataSource = null;
DataBind();
20 голосов
/ 12 января 2009

Попробуйте это ...

myListView.DataSource = null;
myListView.Items.Clear();
6 голосов
/ 17 декабря 2012

Я сделал поиск по этому вопросу, и я использую WPF c #. На случай, если вы тоже здесь ищете решение WPF, используйте следующее:

yourlistview.ItemsSource = null;

4 голосов
/ 12 января 2009

Я предполагаю, что Clear() вызывает отправку события Changed, что, в свою очередь, вызывает автоматическое обновление вашего списка из источника данных. Так что это особенность, а не ошибка ;-)

Вы пробовали myListView.Clear() вместо myListView.Items.Clear()? Может быть, это работает лучше.

2 голосов
/ 28 октября 2010

Проблема возникает из-за того, что вы пытаетесь очистить весь список. Просто используйте listView1.Items.Clear ();

2 голосов
/ 03 марта 2010

Не беспокойтесь о Clear (). Просто сделай это: ListView.DataSource = null; ListView.DataBind ();

Ключ - привязка данных (); У меня всегда работает.

1 голос
/ 17 ноября 2017

Попробуйте с этим:

myListView.ItemsSource = new List< DictionaryEntry >();
0 голосов
/ 22 марта 2018
listView.Items.Clear()
listView.Refresh() 

/ e Обновление из-за отсутствия объяснения. Часто Clear () не достаточно в случае следующих событий / методов. Лучше всего обновить представление с помощью Refresh () после Clear () для мгновенного отражения очистки listView. Это, так или иначе, решило мои проблемы.

0 голосов
/ 08 сентября 2014

Просто используйте метод очистки, работает как шарм. ListView1.Items.Clear () Я думаю, если он не работает, это может быть позиция, в которой вы размещаете этот код. Также можно попробовать обнулить источник данных.

0 голосов
/ 12 января 2009

Возможно, ваш код работает, но после его очистки он восстанавливается. Убедитесь, что это не тот случай. Будет более полезно, если вы предоставите некоторый код. Где вы устанавливаете свой источник данных? Где вы привязываете данные? Где вы очищаете список?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...