1

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」スタイルを設定した場合のみ。

4

1 に答える 1

0

ListBox.ScrollIntoView(listBoxItem)スタイルを変更するときはいつでも、listBoxItem までスクロールするために使用できます。これで、これを取得する方法がわかったと仮定します。幸運を。

于 2013-07-08T10:38:07.153 に答える