Silverlight无法加载大量控件

Silverlight无法加载大量控件,silverlight,xaml,silverlight-4.0,Silverlight,Xaml,Silverlight 4.0,我有一个Silverlight控件,在渲染了大量嵌套的子控件之后,它会直接退出渲染控件。主控件与结构类似的对象进行数据绑定,如下所示: MainViewModel -> MatrixViewModel -> List<SectionViewModel> -> List<BuildingBlockViewModel> MainViewModel ->矩阵模型 ->名单 ->名单 MainViewModel有一个

我有一个Silverlight控件,在渲染了大量嵌套的子控件之后,它会直接退出渲染控件。主控件与结构类似的对象进行数据绑定,如下所示:

MainViewModel 
  -> MatrixViewModel
      -> List<SectionViewModel>
            -> List<BuildingBlockViewModel>
MainViewModel
->矩阵模型
->名单
->名单
MainViewModel
有一个名为
MatrixViewModel
的子对象属性,该属性依次有一个
SectionViewModel
s列表,每个
SectionViewModel
都有一个
BuildingBlockViewModel
s列表

每个视图模型都有一个对应的xaml视图,该视图包含许多按钮、复选框等。SectionViewModel和BuildingBlockViewModel集合使用其父视图xaml中的标准项控件呈现

我发现,如果我从最低级别的构建块视图中删除一些xaml控件(按钮、StackPanel等),那么该控件就能够呈现所有这些控件。但是,一旦我将删除的xaml添加回中,它就会再次停止加载所有控件


就好像Silverlight遇到了某种最大对象树大小之类的东西。我已经监控了内存,当应用程序加载时,还有足够的CPU内存,所以我甚至没有接近CPU。

虚拟化不是一个选项吗?好问题,虚拟化可能会解决这个问题,但这并不能解决为什么会发生这种行为的根源。好的,一次加载到内存中的越多,您越有可能遇到性能问题。对于SL,它似乎只是阻塞而不是显示。对于技术人员,你会发现很多关于它的博客和文章。我发现很难相信这是因为视觉树中对象的上限。我见过Silverlight在没有阻塞的情况下渲染数百万个元素——在阻塞的情况下,它不会仅仅降低视觉效果。我敢打赌,您的问题不是由于性能问题,而是其他原因——尽管如果没有进一步的信息就无法判断。