无需转到顶部即可更改ListBox样式

时间:2013-07-08 10:26:25

标签: c# windows-phone-7 xaml windows-phone-8

我有一个绑定到ListBox源的ObservableCollection。 ListBox使用Style在ListBox的末尾显示“加载更多”内容的按钮。加载最后一个内容后,我更改了ListBox的样式,以便显示“不再发布帖子”。

问题是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”样式时。

1 个答案:

答案 0 :(得分:0)

每当您更改样式时,都可以使用ListBox.ScrollIntoView(listBoxItem)滚动到listBoxItem。假设现在你知道如何获得这个。祝你好运。