11

私はたくさんグーグルしました。もたくさん見つかりました。残念ながら、ストレートで簡単、そして最も重要なことに単純なものはありません。methodaを取り、List<string>previous を削除するa を書いてからItems、 this を設定してList<string>ください。

現在、私は方法を持っていますが、エラーがないわけではありません。

public void refreshList(List<string> list){
    albumList.Items.Clear();
    albumList.DataSource =  list;
}
4

5 に答える 5

10

albumList.Items.Clear(); は必要ありません。

このコードは問題なく動作します

public void refreshList(List<string> list){
    albumList.DataSource =  list;
}
于 2012-12-30T08:35:47.597 に答える
5

データ ソースにバインドされている場合Items.Clear();は機能しません。これは次のようになります。

albumList.DataSource = list;

または確かに:

albumList.DataSource = null;
albumList.DataSource = list;
于 2012-12-30T08:30:03.040 に答える
0

私はこのような同様の問題を持つタスクに取り組んできました

データソースを null に設定し、リストを再割り当てする最初の解決策はまったく機能しませんでした。アイテムをクリアしてリストに新しいアイテムを表示しましたが、そのリスト内のアイテムを選択できなくなりました. しかし、インターネットを掘り下げると、最終的に機能し、意図した効果を持つ古い VB ソリューションを見つけました。

必要な作業は次のとおりです。

  1. 再設定する前に、リスト オブジェクトをクリアします。以下のコードを参照してください。

    //adding the instantiation of the list object so you know what I'm clearing
    List<string> listExample = new List<string>();
    listExample.Clear();
    
  2. 新しいリストが取得されるように、comboBox を更新します。以下のコードを参照してください。

    if (albumList.DataSource == null) 
    { 
        albumList.DataSource = listExample; 
    } 
    else 
    {
        albumList.Refresh();
    }
    
于 2018-06-08T12:07:36.413 に答える