WPF ListBox实现上拉加载 以及Item点击事件

因为最近WPF项目中有对ListBox的使用,需要做到像Android平台的RecyclerView的上拉加载,以及Item点击响应。

当然一下源码以及实现方式,不是我原创,是结合网上同道们的思路以及实现方式做出来,适应我个人项目的方案。

(至于下拉刷新,个人还没做,但是大致思路跟这个上拉加载差不多)

一,ListBox的上拉加载

我们需要对ListBox控件内部的Scrollviewer进行状态监听,判断Scrollviewer是否上拉到底部,然后调用数据添加。

WPF ListBox实现上拉加载 以及Item点击事件

此处的IsBottomScrollView是对Scrollviewer的状态判断

WPF ListBox实现上拉加载 以及Item点击事件

此处获取的三个属性API如下

VerticalOffset:获取包含滚动内容的垂直偏移量的值

ViewPortHeight:获取包含内容视区垂直大小的值

ExtentHeight:获取包含盘区垂直大小的值

如果以上不能让你直观理解的话 可以看看gqqnb的博客

至此列表框上拉加载就实现了


二、ListBox的Item点击事件实现

看图,这个只是我获取到的一种思路。其实针对的SelectionChanged事件 选中后 无法再次触发,可以进行自定义控件继承ListBox,自定义Item继承listboxitem,在Item被selected的时候,重置下selected属性。

WPF ListBox实现上拉加载 以及Item点击事件

以上感谢exception1992ZCS*者 在  编程爱我的提问中的回答  

到这就完了。