1

Heey Stackoverflowers

私は現在、List<>がバインドされたリストボックスで忙しいです。このリスト<>は、WebサーバーへのAPI呼び出しで埋めます。リストの一番下に到達すると、[さらに読み込む]ボタンが表示されます。ボタンを押すと、APIへの別の呼び出しが開始されますが、20個の新しいアイテムが表示されます。これが私の質問です。古い20個を削除せずに、これらの20個の新しいアイテムをリスト<>に追加するにはどうすればよいですか。

これが私が現時点でリストに記入する方法です<>

eventList = (from item in events.Descendants("item")
             select new Events
             {
             EventId = Convert.ToInt16(item.Element("eventid").Value),
             EventName = item.Element("eventname").Value,
             EventType = Convert.ToInt16(item.Element("type").Value)
             }).ToList();

Dispatcher.BeginInvoke(new Action(
() =>
     lbVanAlles.ItemsSource = eventList
));

しかし、20個の新しいアイテムでこれを行うと、古いアイテムが上書きされます。それで、誰かが何か手がかりを得ましたか?おそらくeventList.Addに何かがありますが、「メソッドグループ」に割り当てることができないエラーが発生します

4

1 に答える 1

4

eventListLinqクエリの結果で毎回上書きする代わりに、このList.AddRangeメソッドを使用して既存のリストにアイテムを追加します。

var temp = from item in events.Descendants("item")
             select new Events
             {
             EventId = Convert.ToInt16(item.Element("eventid").Value),
             EventName = item.Element("eventname").Value,
             EventType = Convert.ToInt16(item.Element("type").Value)
             };
eventList.AddRange( temp );

また、lbVanAlles.ItemsSource毎回再割り当てする代わりに、のObservableCollection代わりにを使用するように切り替えることができますList。これにより、アイテムが追加されたときに通知ListBoxされ、自動的に更新されます。

于 2012-04-12T22:53:27.030 に答える