我正在开发一个包含多个 ListView 的 WPF 应用程序。每个视图都有一个按钮,用户可以按下它来启动处理视图中项目的功能。项目数量通常以数千计,并且可能需要几分钟来处理。
现在,我希望选择当前正在处理的项目并将其滚动到,以便用户可以预知已处理了多少。这反过来也使用户很容易知道在发生错误时是什么项目导致处理停止,因为它被选中。
为此,我已将 ListView 的 SelectedIndex 绑定到我在处理函数中设置的 ScrollRow 属性。然后,我使用事件 SelectionChanged 滚动到选定的项目,该事件运行一个在选定项目上调用 ScrollToView 的函数。
我的窗口包含许多视图,因此在包含视图的主窗口上通常有一个滚动条。问题是,当我在视图中的一行上调用 ScrollToView 时,当用户想要查看窗口中更下方的另一个视图时,主窗口也会滚动到该视图。
我已经研究过直接设置滚动位置,但还没有找到任何方法来做到这一点。
当窗口中的视图滚动时,如何防止窗口滚动?