1

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

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

谢谢!

4

2 回答 2

0

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

于 2013-08-15T06:09:51.003 回答
0

If you use MVVMLight in your WPF project, just set PassEventArgsToCommand true.

eg:

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>

于 2017-05-17T03:26:15.343 回答