2013-06-14 5 views
0

사용자가 xceed 그리드 컨트롤에서 스크롤을 시작할 때 감지하려고합니다. 스크롤바 위치가 무엇인지, 그리고 현재 화면에 표시되고있는 행 (색인으로 충분)을 알고 싶습니다.Xceed WPF 그리드의 스크롤 위치와 보이는 행 인덱스

어떻게하면이 아이디어를 얻을 수 있습니까? 항목을 기반으로 스크롤와 DataGrid를 들어

+0

당신이 것을 무엇이 필요합니까 시도? –

+0

웹에서 주기적으로 데이터를 가져와 그리드 내에 표시하는 응용 프로그램을 작성하고 있습니다. 최소 수 행을 가져 오려고합니다. 그 순간에 보여줄 필요가있는 것들만. 사용자가 스크롤을 시작하자마자 스크롤바 위치에 따라 더 많은 데이터 페이지를 요청할 때 모드로 전환합니다. –

답변

1

private void DataGrid_ScrollChanged(object sender, ScrollChangedEventArgs e) 
{ 
    var datagrid = sender as DataGrid; 
    var view = CollectionViewSource.GetDefaultView(datagrid.ItemsSource) as CollectionView; 

    if (view != null && view.Count > 0) 
    { 
     int firstIndex = (int)e.VerticalOffset; 
     var firstItem = view.GetItemAt(firstIndex); 

     int lastIndex = Math.Min(view.Count - 1, (int)(e.VerticalOffset + e.ViewportHeight)); 
     var lastItem = view.GetItemAt(lastIndex); 
    } 
}