当我到达列表框的开头或结尾时,我希望能够将更多数据加载到列表框中。
当我到达顶部并向下拉时,我的列表框显示与时间相关的项目我希望看到一些文本,例如“向下滚动以查找更多项目”,如果这样做,则会触发项目的数据下载发生得更早。
对于底部项目同样的事情,如果你足够远(在最后一项下面,它会触发比列出的项目更晚的项目的数据下载)。
我不是在无缝列表框之后我想要仅在我滚动upp或向下滚动并释放时才触发数据下载。 我希望这种描述有意义。
基本上我需要知道的是列表框中的确切滚动位置,以便我可以确定何时拖动和释放列表很远或者向下。 对于那些拥有iPhone的用户,我所使用的效果会在Facebook应用中使用。
干杯
/麦
答案 0 :(得分:13)
要获得ListBox的ScrollViewer所需的确切滚动位置。我将它用于Pivots(在逻辑删除后返回前一个滚动位置) - 我认为它也适用于ListBoxes ..
var scrollViewer = FindScrollViewer(listBox);
var offset = scrollViewer.VerticalOffset;
static ScrollViewer FindScrollViewer(DependencyObject parent)
{
var childCount = VisualTreeHelper.GetChildrenCount(parent);
for (var i = 0; i < childCount; i++)
{
var elt = VisualTreeHelper.GetChild(parent, i);
if (elt is ScrollViewer) return (ScrollViewer)elt;
var result = FindScrollViewer(elt);
if (result != null) return result;
}
return null;
}
答案 1 :(得分:4)
你正在寻找两件事。首先,您需要更改ListBox的默认布局以具有结束控件。一个相当不错的实现是presented here - 您基本上是在默认模板中ItemPresenter
之后插入一个额外的控件。
寻找动态加载here is an implementation。