将命令附加到ListView的ScrollViewer.ScrollChanged

时间:2012-07-30 12:32:38

标签: wpf mvvm mvvm-light eventtrigger eventtocommand

WPF 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的RelayCommand

2 个答案:

答案 0 :(得分:3)

EventTrigger不会触发路由事件。您可以使用this article中提出的解决方案 创建RoutedEventTrigger类并使用它而不是EventTrigger

答案 1 :(得分:0)

我建议使用此行为。如果你没有Blend,你需要获得Blend SDK。但是一旦你有了,你可以按照this tutorial来扩展ScrollViewer的行为。