リストビューをクリアしようとしましたが、クリアメソッドが機能しません:
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();
}
どう?
DataSource = null;
DataBind();
これを試して ...
myListView.DataSource = null;
myListView.Items.Clear();
私はこれを検索し、WPF c#を使用しています。 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 >();
listView.Items.Clear()
listView.Refresh()
/ e説明不足のため更新。多くの場合、Clear()は、すぐに続くイベント/メソッドのイベントでは不十分です。 listViewのクリアを即座に反映するには、Clear()に続くRefresh()でビューを更新するのが最善です。これは、とにかく私の関連する問題を解決しました。
基になるDataTableから行を削除するか、データテーブルが不要になった場合は、データソースをnullに設定することをお勧めします。
おそらくあなたのコードは動作しますが、それをクリアするとどこかにリバウンドされます。これはそうではないことを確認してください。何らかのコードを提供する方が便利です。データソースはどこに設定していますか?データバインディングはどこにありますか?どこでリストをクリアしていますか?