ListBox のソースにバインドされた ObservableCollection があります。ListBox は Style を使用して、ListBox の最後にボタンを表示し、コンテンツを「さらに読み込む」ようにします。最後のコンテンツが読み込まれると、ListBox の Style を変更して、「No more posts」と表示されるようにします。
問題は、スタイルを変更するときに ListBox が先頭 (最初の項目) に移動することです.これを防ぐ方法はありますか?
// iterate over items
foreach (Record rec in root.data.records)
{
// add items to observablecollection
}
// check if there are more items
if (root.data.nextPage == 0)
{
// there are no more items => set style with "no more posts"
Dispatcher.BeginInvoke(() => listbox.Style = (Style)App.Current.Resources["listboxend"]);
return;
}
else
{
// there are still more items => set style with button
Dispatcher.BeginInvoke(() => listbox.Style = (Style)this.Resources["listboxwithbutton"]);
}
奇妙なことに、最初はリストボックスにスタイルがありません。「listboxwithbutton」スタイルを設定すると、リストボックスが上部に移動しません...「listboxend」スタイルを設定した場合のみ。