ScrollViewerDataGrid를 생성한 경우, DataGrid를 마우스 휠을 이용해서 스크롤이 안되는 문제가 발생한다. PreviewMouseWheel 이벤트를 다음과 같이 구현해서 문제를 해결할 수 있다.

<ScrollViewer Height="350">
    <Grid>
        <DataGrid ItemsSource="{Binding Items}"
                  PreviewMouseWheel="DataGrid_MouseWheel"/>
    </Grid>
</ScrollViewer>


private void DataGrid_MouseWheel(object sender, MouseWheelEventArgs e)
{
    var dataGrid = sender as DataGrid;
    var scrollViewer = (dataGrid.Parent as Grid).Parent as ScrollViewer;

    var args = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
    args.RoutedEvent = ScrollViewer.MouseWheelEvent;
    scrollViewer.RaiseEvent(args);
}

카테고리:

업데이트:

댓글남기기