Ответ 1
Как насчет
DataSource = null;
DataBind();
Я пытаюсь очистить свой список, но ясный метод не работает:
myListView.Items.Clear();
Это не работает. Когда я помещаю точку останова в эту строку, строка выполняется, но мой список не пуст. Как получилось?
Я заполняю свой список, устанавливая его источником данных в datatable.
Мое решение теперь состоит в том, чтобы установить источник данных на пустой datatable.
Мне просто интересно, почему ясно, не делайте трюк?
Я использую главную страницу. Здесь некоторый код страницы содержимого при нажатии кнопки. Метод 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 С#. На всякий случай, когда вы тоже нашли решение WPF, используйте следующее:
yourlistview.ItemsSource = null;
Я предполагаю, что Clear()
вызывает событие Changed
, которое, в свою очередь, запускает автоматическое обновление вашего списка из источника данных.
Так что это функция, а не ошибка;-)
Вы пробовали myListView.Clear()
вместо myListView.Items.Clear()
? Возможно, это работает лучше.
Не беспокоить Clear(). Просто сделайте это: ListView.DataSource = null; ListView.DataBind();
Ключ является databind(); Работает каждый раз для меня.
Проблема возникает из-за того, что вы пытаетесь очистить весь список. Просто используйте listView1.Items.Clear();
Попробуйте следующее:
myListView.ItemsSource = new List< DictionaryEntry >();
Я бы предложил удалить строки из базового DataTable или если вам больше не нужен datatable, установите для источника данных значение null.
Вероятно, ваш код работает, но он восстанавливается где-то после его очистки. Удостоверьтесь, что это не так. Это будет более полезно, если вы предоставите некоторый код. Где вы устанавливаете источник данных? Где вы привязываетесь к данным? Где вы очищаете список?
listView.Items.Clear()
listView.Refresh()
/e Обновление из-за отсутствия объяснения. Часто Clear() не достаточно в случае следующих событий/методов. Лучше всего обновить представление с помощью Refresh() после Clear() для мгновенного отражения очистки listView. Это, так или иначе, решило мои проблемы.
Это немного поздно, но это работает для меня, по крайней мере, с использованием UWP
myListView.ItemsSource = null;
Просто использование метода clear работает как шарм. ListView1.Items.Clear() Я думаю, что если он не работает, это может быть позиция, по которой вы размещаете этот код. Также можно попытаться свернуть источник данных.