gpt4 book ai didi

wpf - Xceed DataGrid 重置滚动条位置

转载 作者:行者123 更新时间:2023-12-04 06:53:28 26 4
gpt4 key购买 nike

当我更改 Xceed DataGridControl 中的 ItemsSource 时,我的垂直和水平滚动条会立即重置到顶部/左侧。

任何想法如何防止这种情况发生?

最佳答案

我终于修复并弄清楚了为什么每次 DataGrid 刷新时我的滚动条都会跳到顶部/左侧。

结果是 XAML 绑定(bind)到 View 而不是实际数据源 (DataView),因此每次刷新都会替换 View 和数据源。作为绑定(bind)到 DataView 的结果,我的滚动条不再跳跃,并且我的网格现在像以前一样在 1-2 秒内立即填充。

我包括了我的代码更改,以防将来帮助其他人。

旧代码绑定(bind)到 View :

 <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");
}
}
}

新代码绑定(bind)到 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;
}
}
}

关于wpf - Xceed DataGrid 重置滚动条位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com