我使用PRISM库编写的WPF应用程序性能分析。 在这个应用程序中,从一个视图导航到另一个视图特别慢,特别是当导航远离一个重的"视图。 请注意:
使用PRISM库,区域通常在ContentControl上实现,例如:
<ContentControl regions:RegionManager.RegionName="MAIN" />
因此,在MAIN区域中切换视图将更新&#34;内容&#34;这个ContentControl(从the source code可以看出)。 设置&amp;将UI元素切换为&#34;内容&#34; ContentControl的性能副作用(请参阅this blogpost)。
为了克服这种情况,我为网格实现了一个自定义RegionAdapterBase(CachingGridRegionAdapter.cs),它基本上添加了导航为子视图的所有视图,并隐藏了所有非活动视图。
性能提升是巨大的;现在可以立即从一个视图导航到另一个视图。 问题:这种方法有什么缺点吗?
如果还有其他方法可以解决这个问题,请告诉我。
谢谢你的时间,
柯恩