2011-06-07 33 views
1

我正在使用WPF MVVM解决方案,其中我有一个每秒更新多次的网格。我需要允许用户在网格中间向下滚动并保持在网格数据更新之间。现在,如果我向下滚动网格,一旦下一次更新网格数据,滚动条位置就会跳回顶端。DataGrid上的ScrollBar不断跳回顶部

即使处理更新,我该如何完成将滚动条的x位置保留在当前位置。请告诉我。

回答

0

你正在更新/重置datagrid在你的更新中绑定的集合还是你正在修改集合?我相信,如果你这样做MyCollection的= UpdatedCollection,而不是使用myCollection.Add(x)和myCollection.Remove(X)

+0

为什么我要手动添加或删除项目到我的收藏夹?正如我所说,这个数据集每秒更新多次。 – MickeySixx 2011-06-07 12:51:26

+0

仍然可以通过调用集合的添加/删除方法来更新您的数据集。你是否将Grid的ItemSource属性绑定到ObservableCollection?如果是这样,通过添加/删除修改收集将是最好的解决方案。但是,如果您重新指定Grid的ItemsSource,比如'Grid.ItemSource = new List()',则您的Grid将每次都重置,可能会丢失该过程中的滚动位置 – 2011-06-07 14:40:47

0
<ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" 
ScrollViewer.CanContentScroll="False"/> 

将要解决此问题修改您的收藏电网将重置。 原因通常是ListView总是进入最后选定的元素。 此外,您还需要确保列表正在通过绑定进行填充。