gpt4 book ai didi

wpf - DataGrid 项的静默更新

转载 作者:行者123 更新时间:2023-12-02 00:26:26 26 4
gpt4 key购买 nike

我有一个 .NET 4.0 WPF DataGrid,其中包含大约 2,000 个已排序的项目和一个选定的项目。 DataGrid 每 500 毫秒从一个单独的线程更新一次,导致添加和/或删除项目。每次更新后,项目集合都会排序。

问题是,如果选择的项目靠近列表的中间,在多次更新后它经常会离开可见区域。我正在寻找一种在用户不注意的情况下更新 DataGrid 的方法,即将所选项目保持在可见区域的相同位置。

到目前为止,我有 2 个解决这个问题的想法,但没有一个让我感到自豪:

  1. 将更新过程从自动更改为手动,即放置一个带有多个待定更新的 TextArea 和一个“更新”按钮。这是不可取的,因为我需要与我的产品负责人重新协商。
  2. 在每次更新之前循环遍历项目以获得可见项目的集合(使用 this 方法)并获得所选项目在可见项目中的相对位置。然后运行更新并使用 ScrollIntoView 将所选项目滚动到初始位置。该方法的问题是程序必须每 500 毫秒循环一次所有项目,这对处理器来说是一项相当大的工作量。

我曾经在 WinForms 中使用 TopIndex 属性解决这个问题,但在 WPF 中没有对应的方法。

总而言之,任何关于如何在排序和经常更新的 DataGrid 中添加/删除项目而用户不必追逐感兴趣的项目的想法将不胜感激。

最佳答案

也许您可以看一下 ScrollViewer 及其成员,例如 VerticalOffset、ScrollToVerticalOffset。让我知道是否有帮助

关于wpf - DataGrid 项的静默更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817572/

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