2010-05-07 4 views

답변

3

마지막으로 고정시키고 왜 내 스크롤바가 위쪽/왼쪽으로 이동하는지 알아 냈습니다. 내 DataGrid가 새로 고침 될 때마다 왼쪽/왼쪽으로 이동합니다.

실제 데이터 원본 (DataView) 대신보기에 바인딩 된 XAML을 해제하므로 각 새로 고침이 뷰와 데이터 원본을 바꿉니다. DataView에 바인딩 한 결과 내 스크롤 막대가 더 이상 점프하지 않으며 그리드가 생성되기 전에 즉시 그리드가 채워집니다.

장래에 다른 사람들을 돕기 위해 필자의 코드 변경을 포함했습니다.

오래된 코드는보기에 결합 :

<Window.Resources> 
    <xcdg:DataGridCollectionViewSource x:Name="FileGridView" 
     x:Key="fileView" 
     Source="{Binding Path=GridData}" 
     AutoFilterMode="And" 
     AutoCreateItemProperties="True" 
     AutoCreateForeignKeyDescriptions="True" 
     DefaultCalculateDistinctValues="False"/> 
</Window.Resources> 

<Grid> 
    <xcdg:DataGridControl Name="FileGrid" 
         AutoCreateColumns="False" 
         SelectionMode="Extended" 
         ReadOnly="True"   
         ItemsSource="{Binding Source={StaticResource fileView}}" 
         ItemScrollingBehavior="Immediate" 
        NavigationBehavior="RowOnly"> 
    </xcdg:DataGridControl> 
</Grid> 

public sealed class DataGridViewModel : ViewModelBase 
{ 
    private DataTable _dt = new DataTable("MyDataTable"); 
    public DataView GridData 
    { 
     get 
     { 
     return _dt.DefaultView; 
     } 
    } 
} 
:

새로운 코드는 DataView를 결합

<xcdg:DataGridControl Name="FileGrid" 
         AutoCreateColumns="False" 
         SelectionMode="Extended" 
         ReadOnly="True"   
         ItemsSource="{Binding FileGridDataSource}" 
         ItemScrollingBehavior="Immediate" 
         NavigationBehavior="RowOnly"> 
</xcdg:DataGridControl> 

public sealed class DataGridViewModel : ViewModelBase 
{ 
    public DataGridCollectionView FileGridDataSource 
    { 
     get 
     { 
     return _fileGridDataBoundSource; 
     } 
     set 
     { 
     _fileGridDataBoundSource = value; 
     NotifyPropertyChanged("FileGridDataSource"); 
     } 
    } 
}