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