Wpf 将命令附加到ScrollViewer.ScrollChanged的ListView
WPFWpf 将命令附加到ScrollViewer.ScrollChanged的ListView,wpf,mvvm,mvvm-light,eventtrigger,eventtocommand,Wpf,Mvvm,Mvvm Light,Eventtrigger,Eventtocommand,WPFListView类可以设置为自动处理滚动,而无需外部ScrollViewer,并且可以通过编写XAML为控件的内部滚动条注册事件处理程序,如下所示: <ListView ScrollViewer.ScrollChanged="ScrollChanged" /> 如何将其附加到MVVM light命令?我尝试了以下方法,但无效: <ListView> <i:Interaction.Triggers> <i:EventT
ListView
类可以设置为自动处理滚动,而无需外部ScrollViewer
,并且可以通过编写XAML为控件的内部滚动条注册事件处理程序,如下所示:
<ListView ScrollViewer.ScrollChanged="ScrollChanged" />
如何将其附加到MVVM light命令?我尝试了以下方法,但无效:
<ListView>
<i:Interaction.Triggers>
<i:EventTrigger EventName="ScrollViewer.ScrollChangedEvent">
<cmd:EventToCommand Command="{Binding ScrollCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ListView>
注意:
ScrollCommand
-是来自我的viewmodel的中继命令。EventTrigger
不会触发路由事件。您可以使用中建议的解决方案
要创建一个RoutedEventTrigger
类并使用它而不是EventTrigger
,我建议使用此行为。如果没有Blend,则需要获取Blend SDK。但是一旦你有了它,你就可以扩展ScrollViewer的行为。你使用的是一种行为,EventToCommand行为。但是您可以编写一个自定义的程序来搜索ListView的ScrollViewer并连接到“ScrolledChanged”事件。还可以根据允许绑定命令的行为添加DependencyProperty。在事件处理程序中,您可以调用绑定到的命令。谢谢,这非常有用,但现在我遇到了另一个问题:我无法从中获取任何参数。