WPF中ListView在不滚动数据的情况下只能取到当前显示的数据,取不到滚动条以下的数据解决方法



如题

目前的解决方法是我禁用了listview的滚动条的可用属性,在listview外面一层增加了一个ScrollViewer

然后改动我们的listview的鼠标滑轮滚动方法:

 

 private voidListViewList_PreviewMouseWheel(object sender, MouseWheelEventArgs e)

        {

            var eventArg = newMouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);

 

            eventArg.RoutedEvent =UIElement.MouseWheelEvent;

 

            eventArg.Source = sender;

 

           this.ListViewList.RaiseEvent(eventArg);

 

        }

从而可以滚动列表,这样的一个瑕疵是我们的列表在滚动所以列表的抬头就会出现滚上去的情形,不太好,最好用列表的滚动,所以不用循环用列表的ItemSource属性来取也可以


另外附上查询出来的结果原理

ListView默认情况下只有用户可见的部分才初始化,当滚动条滚动时滚出去的行对象立刻被重用于新的滚入的行,,在一个行滚出去的时候会触发其loadrow之类的事件,当这行又被重用于新的下一个滚入又会触发事件

阅读更多
换一批

没有更多推荐了,返回首页