I have a ScrollViewer wrapped around an ItemsControl which is bound to a collection of mine. I've made a DataTemplate for the items in the ItemsControl. The DataTemplate includes a DataGrid. Everything works well except that I can't effectively use mouse wheel scrolling. The DataGrids don't need to be scrolled individually and are sized so that all of their content displays at once. There's usually too many items to display in one screen, hence the overall ScrollViewer. Whenever I use the mouse wheel over the DataGrids the events are eaten without effectively doing anything. What I want is for mouse wheel input to be processed by the overall ScrollViewer. Using the mouse over other parts of an item's template works fine, the only trouble is with the DataGrid part.

So, how do I either prevent the DataGrids from processing mouse wheel events or route these events to the overall ScrollViewer?


To be clear, my arrangement is approximately
Code:
<ScrollViewer>
  <ItemsControl ItemsSource="{Binding ...}">
    <ItemsControl.ItemTemplate>
      <DataTemplate>
        <DataGrid ...>
          ...
        </DataGrid>
      </DataTemplate>
    </ItemsControl.ItemTemplate>
  </ItemsControl>
</ScrollViewer>
The template is actually more complex, as is the rest, but these should be the important bits.


Thanks for any input!