wpfmvvmmvvm-lighteventtriggereventtocommand

Attaching Command to ScrollViewer.ScrollChanged of ListView


The WPF ListView class can be set up to automatically handle scrolling without an external ScrollViewer and it's possible to register an event handler for the control's internal scrollbar by writing XAML like such:

<ListView ScrollViewer.ScrollChanged="ScrollChanged"  />

How to attach it to MVVM light Command? I tried the following, but it doesn't work:

<ListView>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="ScrollViewer.ScrollChangedEvent">
            <cmd:EventToCommand Command="{Binding ScrollCommand}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</ListView>

Note: ScrollCommand - is a RelayCommand from my viewmodel.


Solution

  • EventTrigger doesn't trigger for routed events. You can use the solution proposed in this article to create a RoutedEventTrigger class and use it instead of EventTrigger.