web-dev-qa-db-ja.com

C#ListViewのすべてのアイテムをクリアする

リストビューをクリアしようとしましたが、クリアメソッドが機能しません:

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();
    }
23
Martijn

どう?

DataSource = null;
DataBind();
22
Tony Basallo

これを試して ...

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

私はこれを検索し、WPF c#を使用しています。 WPFソリューションを探している場合でも、次を使用してください。

yourlistview.ItemsSource = null;

6
user1656632

私の推測では、Clear()によってChangedイベントが送信され、データソースからリストビューの自動更新がトリガーされます。したがって、これはバグではなく機能です;-)

myListView.Clear()の代わりにmyListView.Items.Clear()を試しましたか?たぶんそれがうまくいくでしょう。

4
Treb

Clear()を気にしないでください。これを行うだけです:ListView.DataSource = null; ListView.DataBind();

キーはdatabind()です。私のために毎回動作します。

2
Dave Howell

リストボックス全体をクリアしようとしているため、問題が発生しています。 listView1.Items.Clear();を使用してください。

2
saurabh gupta

これで試してください:

myListView.ItemsSource = new List< DictionaryEntry >();
1
nisan
listView.Items.Clear()
listView.Refresh() 

/ e説明不足のため更新。多くの場合、Clear()は、すぐに続くイベント/メソッドのイベントでは不十分です。 listViewのクリアを即座に反映するには、Clear()に続くRefresh()でビューを更新するのが最善です。これは、とにかく私の関連する問題を解決しました。

0
Jack Rohme

基になるDataTableから行を削除するか、データテーブルが不要になった場合は、データソースをnullに設定することをお勧めします。

0
Martin Moser

おそらくあなたのコードは動作しますが、それをクリアするとどこかにリバウンドされます。これはそうではないことを確認してください。何らかのコードを提供する方が便利です。データソースはどこに設定していますか?データバインディングはどこにありますか?どこでリストをクリアしていますか?

0
Serhat Ozgel