更改ListBox样式而不转到顶部
本文关键字:顶部 ListBox 样式 更改 | 更新日期: 2023-09-27 18:21:32
我有一个绑定到ListBox源的ObservableCollection。ListBox使用Style在ListBox的末尾显示一个按钮,以"加载更多"内容。加载最后一个内容时,我更改ListBox的样式,使其显示"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"]);
}
奇怪的是:一开始列表框没有样式。当我设置"带按钮的列表框"样式时,列表框不会转到顶部。。。仅当设置"listboxend"样式时。
无论何时更改样式,都可以使用ListBox.ScrollIntoView(listBoxItem)
滚动到listBoxItem。假设现在你知道如何获得这个。祝你好运