Winforms 如何在数据源更改Xtragrid时不更改滚动位置

Winforms 如何在数据源更改Xtragrid时不更改滚动位置,winforms,.net-4.0,devexpress,xtragrid,devexpress-windows-ui,Winforms,.net 4.0,Devexpress,Xtragrid,Devexpress Windows Ui,我有一个带有DevExpress Xtragrid套装的windows窗体应用程序。 我有一个屏幕,它有一个包含许多列和行的网格,因此,当我更改数据或将数据重新加载到DataSource属性时,我不想更改滚动位置。我认为您应该将您的SelectedRowHandle和FocusedColumn存放在某个地方。这可能会对你有所帮助。我认为你应该把你的选定的rowhandle和焦点列放在某个地方。这可能会对您有所帮助。我猜您一次只允许选择一行。也就是说,GridView.optionselectio

我有一个带有DevExpress Xtragrid套装的windows窗体应用程序。
我有一个屏幕,它有一个包含许多列和行的网格,因此,当我更改数据或将数据重新加载到DataSource属性时,我不想更改滚动位置。

我认为您应该将您的
SelectedRowHandle
FocusedColumn
存放在某个地方。这可能会对你有所帮助。

我认为你应该把你的
选定的rowhandle
焦点列
放在某个地方。这可能会对您有所帮助。

我猜您一次只允许选择一行。也就是说,
GridView.optionselection.MultiSelect==false

在这种情况下,您可以处理
FocusedRowChanged
事件,并存储该行中的信息(即,数据集中唯一的列或列组合中的值),以便再次访问该行。然后,当需要更新数据源时,使用
GridView.LocateByValue
方法获取具有焦点的行的行句柄,并将
GridView.FocusedRowHandle
设置为该行句柄


请注意,在更新数据源之前,不能简单地保存行句柄,因为如果在数据源中添加或删除行,行句柄可能会更改。

我假定一次只允许选择一行。也就是说,
GridView.optionselection.MultiSelect==false

在这种情况下,您可以处理
FocusedRowChanged
事件,并存储该行中的信息(即,数据集中唯一的列或列组合中的值),以便再次访问该行。然后,当需要更新数据源时,使用
GridView.LocateByValue
方法获取具有焦点的行的行句柄,并将
GridView.FocusedRowHandle
设置为该行句柄


请注意,在更新数据源之前,不能简单地保存行句柄,因为如果在数据源中添加或删除行,行句柄可能会更改。

谢谢您的帮助,但我使用的是Windows窗体,您传递的链接是WPF Projects感谢您的帮助,但我使用的是Windows窗体,您传递的链接是用于WPF项目的