我有一个绑定到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”样式时。
答案 0 :(得分:0)
每当您更改样式时,都可以使用ListBox.ScrollIntoView(listBoxItem)
滚动到listBoxItem。假设现在你知道如何获得这个。祝你好运。