我想在WPF中的DataGrid中加载10000个项目。使用Window
控件时,数据加载速度比使用Page
控件时更快。有人可以解释原因吗?
答案 0 :(得分:1)
页面适用于导航应用程序(通常使用 后退和前进按钮,例如IE浏览器)。页面必须是 托管在NavigationWindow或Frame
中Windows只是普通的WPF应用程序Windows [lnk]
这基本上是一个XBAP vs ClickOnce问题。页面中的任何内容都是由WPF允许在浏览器窗口中执行的内容编译和限制的。这排除了WPF Windows可以逃脱的许多低级计算机操作,因为它们被编译为从桌面运行。 Window应用程序可以完全访问系统资源。
请记住,当您使用Page控件时,即使在调试期间,生成的代码也会在构建时考虑到浏览器部署。所有XBAP都在部分信任下的限制性安全沙箱中运行。换句话说,它们被允许使用某些.NET库但被禁止访问其他.NET库。 [ref]这些.NET库中的一些将负责优化,因此无法在浏览器部署中实现。
因此,完全合理的是,在Windows中构建的应用程序能够比在Pages中构建的应用程序更快地执行大多数操作。