在我的WPF应用程序中,我有一个带有选项卡控件的屏幕。其中五个选项卡包含需要显示大量行(至少为5000)的数据网格。这些表绑定到Part对象的ObservableCollections。每行显示大约20个零件数据点。我的问题是,在用户输入所需信息并生成数据后,单击选项卡会导致应用程序挂起30-60秒。在此之后,数据网格最终加载,并且通过正确的虚拟化设置,它们以可接受的速率执行(不是非常快,但不是太慢)。如果我禁用虚拟化,程序会耗尽太多内存,并且加载时间不会受到影响。
最令人反感的表格包含大约六个模板列。每个模板包含堆栈面板或网格内的控件;基本上每行被分成两行,就像一个双排。这种布局是一项要求,而分页可能不是客户愿意接受的。
这是我应用程序中最重要的屏幕,而且我几乎无法完成这项工作。我有什么办法可以加快这个过程吗?也许ObservableCollection是错误的选择?
答案 0 :(得分:0)
您能否提供更多见解......
你能检查一下“生成”每个5000行的5个集合花了多少时间吗? (这是我假设你说的)
在“打开”的情况下,在“我们将集合分配给项目源之后”的UI加载时间是什么?
只有当tabItem实际上是Visible \ Selected时,如果将“ItemsSource”绑定到相应的数据网格会发生什么?
您的datagrids是否有默认的排序成员路径?分组?过滤路径?
这些是我打算在这个问题上开始的一些事情。