滚动条滚动到ListView(WPF)末尾时加载更多项目

时间:2013-08-14 01:22:09

标签: wpf listview scrollviewer

我想实现一个使用ListView加载项目的功能,但项目数量非常大,所以我想当用户滚动滚动条到ListView的末尾时,它会自动加载更多的项目。我找到了一个解决方案来检测滚动是否滚动到这里结束:Detect when WPF listview scrollbar is at the bottom?但是在MVVM中,我没有找到传递EventArgs的解决方案。还有其他解决方案吗? 我的Xaml看起来像这样:

<ScrollViewer>
<ListView>
    ...
</ListView>
</ScrollViewer>

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以让View在ViewModel上执行ICommand属性,并利用Execute方法的CommandParameter参数。但是,我会警告将View的状态传递给ViewModel,以便ViewModel可以确定要加载的项目不是适当的MVVM模式。通常,ViewModel需要驱动节目,即使这包括将一些UI状态信息从View卸载到ViewModel,以便它可以原生地推断出要加载的内容。

答案 1 :(得分:0)

如果在WPF项目中使用MVVMLight,只需将PassEventArgsToCommand设置为true。

例如:

xmlns:ni="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:mv="http://www.galasoft.ch/mvvmlight"

<ni:Interaction.Triggers>
<ni:EventTrigger EventName="SelectionChanged">
    <mv:EventToCommand Command="{Binding YourCommand}" PassEventArgsToCommand="True" />
</ni:EventTrigger>