2
Xceed DataGridControl에서 ItemsSource를 변경하면 세로 및 가로 스크롤 막대가 즉시 위쪽/왼쪽으로 재설정됩니다.Xceed DataGrid가 ScrollBar 위치를 재설정합니다.
아이디어를 어떻게 방지 할 수 있습니까?
Xceed DataGridControl에서 ItemsSource를 변경하면 세로 및 가로 스크롤 막대가 즉시 위쪽/왼쪽으로 재설정됩니다.Xceed DataGrid가 ScrollBar 위치를 재설정합니다.
아이디어를 어떻게 방지 할 수 있습니까?
마지막으로 고정시키고 왜 내 스크롤바가 위쪽/왼쪽으로 이동하는지 알아 냈습니다. 내 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");
}
}
}