我有一个 Silverlight TreeView,其中每个节点都是一个 TreeNodeViewModel。TreeNodeViewModel 的属性是Text、IsSelected、ImageUri 和Parent。我正在加载大约 700 到 1000 个 TreeView 项目。
似乎正在发生的是,通过 HierarchicalDataTemplate 中的绑定加载 TreeView 后,IE 浏览器的占用空间从大约 48,000kb 增长到 165,000kb。我正在为 TreeView 本身使用 ViewModel,它具有 ExpandAll 和 CollapseAll 的绑定。当我调用 expand 命令时,IE 占用空间继续增长到近 300,000kb。一旦树完全展开,重复展开和折叠不会增加占用空间;也就是说,一旦创建了所有 ViewModel,它似乎就趋于平稳。
我的问题是,如果我正在加载大约 800 个 TreeView 项目,是否预计占用空间应该与我的情况一样大?有没有人见过加载大量数据导致 IE 占用过多空间?
我正在开发的 SL 应用程序的一些背景知识: 硬件设备(又名:服务器)是专有硬件,具有嵌入式 Web 服务器,类似于 linksys 路由器。一个压缩的配置文件(模型实体)被加载到设备中,SL 应用程序下载它,解压缩它,并使用 DataContractSerializer 反序列化它。压缩后的文件约为1.75MB,未压缩的约为12.5MB。
我的第一个想法是,由于模型的反序列化,IE 占用空间很大。最初,当 IE 启动时,占用空间约为 7500kb,将模型加载到内存中会运行到 48,000kb。
任何想法或建议将不胜感激。