当我更改Xceed DataGridControl中的ItemsSource时,我的垂直和水平滚动条会立即重置到顶部/左侧。
任何想法如何防止这种情况发生?
答案 0 :(得分:3)
我终于修复并弄清楚为什么每次我的DataGrid刷新时我的滚动条会跳到顶部/左边。
将绑定到View的XAML变为实际数据源(DataView),因此每次刷新都会替换视图和数据源。由于绑定到DataView,我的滚动条不再跳跃,我的网格现在立即填充,就像它工具1-2秒之前一样。
我包含了我的代码更改,以防将来帮助其他人。
旧代码绑定到视图:
<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");
}
}
}
新代码绑定到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;
}
}
}