Wpf 为什么删除ItemsSource元素时滚动条会移动?

Wpf 为什么删除ItemsSource元素时滚动条会移动?,wpf,scrollbar,itemssource,Wpf,Scrollbar,Itemssource,我有一个网格,其中ItemsSource绑定到一个字符串列表。当我从ItemsSource中删除一个元素时,滚动条会移动到删除的元素,这对我来说是个问题 例如,我的网格包含100行。用户正在聚焦第100行。用户发出删除第一行的命令:滚动条移动到第二行 有没有办法避免这种行为 谢谢,请出示您的代码。我们想看看您是如何为网格设置首选项的。进一步告诉我们,当您更改列表中的某些内容时,是否正在重置ItemsSource的值?您是否使用ObservableCollection 无论如何,请仔细看看这个。也

我有一个网格,其中ItemsSource绑定到一个字符串列表。当我从ItemsSource中删除一个元素时,滚动条会移动到删除的元素,这对我来说是个问题

例如,我的网格包含100行。用户正在聚焦第100行。用户发出删除第一行的命令:滚动条移动到第二行

有没有办法避免这种行为


谢谢,请出示您的代码。我们想看看您是如何为网格设置首选项的。进一步告诉我们,当您更改列表中的某些内容时,是否正在重置ItemsSource的值?您是否使用ObservableCollection

无论如何,请仔细看看这个。也许这就是你想要的:



IsSynchronizedWithCurrentItem应防止在没有您的权限的情况下移动滚动条。:)

在itemsSource中添加或删除元素时,我不会重置它,而是使用add()/AddRange()和remove()/RemoveRange()方法。My ItemsSource不是一个ObservableCollection,但这并不阻止更新接口。很遗憾,IsSynchronizedWithCurrentItem属性没有更改行为。您应该将列表设置为可观察集合。是的,我应该。。。我以为是的,但在你问了之后我才意识到不是。这可能是我的问题的根源吗?不确定,因为你没有向我们公布你到底在干什么。我不知道你在忙什么。我们必须了解xaml、代码隐藏和viewmodel,才能理解您的问题。我不知道你为什么不使用ObservaleCollection。你决定使用列表有什么原因吗?我可以继续猜测通常出现的案例。:)实际上,我之所以不使用ObservableCollection,是因为这个字符串列表是在WCF服务中构建的,并且是从WPF接口检索的。最好的解决方案是什么:在我的界面中将其从列表转换为ObservableCollection,或者在服务中将其定义为ObservableCollection(我想这不太可能)?
<ListBox Name="employeeListBox1"
         ItemsSource="{Binding Source={StaticResource Employees}}"
         ItemTemplate="{StaticResource EmployeeItemTemplate}"
         IsSynchronizedWithCurrentItem="True"/>