본문 바로가기

Silverlight

Scrollable DataGrid


기본적으로 DataGrid는 마우스휠에 따라 Scroll이 되질 않고 있습니다. 그래서 저는!! 붙여 넣으면 Scroll이 되는 Behavior를 만들려고 했는데요!!!

DataGrid를 파보닌까 ScrollViewer가 아니라 Scroll로 이루어져 있더라구용~ 머 Scroll이 마우스휠에 따라 작동하게 한다고 해도 DataGrid는 같이 움직이지를 않는데요. 그래서 구글신께 물어 보닌까 저에게

http://www.nystedberry.info/2009/03/silverlight-datagrid-listbox-mouse-scroll-support

이런주소를 알려 주더라구요 ㅋ_ㅋ

머 위에 내용을 보면 자세히 나와 있겠지만 귀찮으신 분들을 위해서 간단히 돌아가는 소스만 보여드리도록 하겠습니다.


1) 우선 DataGrid를 상속 받은 ScrollableDataGrid를 하나 만들구요

ScrollableDataGrid

public class ScrollableDataGrid : DataGrid

    {

        public IScrollProvider ScrollProvider

        {

            get { return OnCreateAutomationPeer() as IScrollProvider; }

        }
   
}

 

 

2)그리고 이렇게 만든 ScrollableGrid의 MouseWheel Event 에서 는 다음과 같이 처리해 주면 됩니다.

Datagrid_MouseWheel

void datagrid_MouseWheel(object sender, MouseWheelEventArgs e)

     {

        if (e.Delta > 0)

          datagrid.ScrollProvider.Scroll(ScrollAmount.NoAmount, ScrollAmount.SmallDecrement);

        else

          datagrid.ScrollProvider.Scroll(ScrollAmount.NoAmount, ScrollAmount.SmallIncrement);

     }