2013-10-11 226 views
0

我知道您不应该将超过7个项目添加到数据透视控件,但它只是非常容易使用。清除PivotItem缓存

我甚至不运行到问题到现在为止:我这使得文章枢轴项模板(比如,日期,标题,内容)。我正在使用数据透视表,因为在弹出文章时我想转到下一个/上一个。然而,在一些轻弹(〜50,小的深渊)后,我得到一个OutOfMemoryException。内存使用情况表明,PivotItem内容在第一次访问时即时生成,但不会被释放。

我可以挂钩到UnloadedPivotItem/LoadedPivotItem(适用于图像查看和Source属性)并清除可视化树,但这意味着我必须为每个视图模型“手工”生成内容。

因此:是否有任何可能的方法来指定缓存应该有多大?或者至少有一个理想的方式来重新生成给定ViewModel的PivotItem内容?

+0

是否使用在数据透视物品的图片? –

+0

nope,只是一些文本块和边界类似于http://www.readability.com/的风格。内存使用量每篇文章增加1-2mb,具体取决于内容,仅在长期内是致命的。 –

回答

1

我会建议使用Telerik'sSlideView控制。 In my mind,没有理由不使用Telerik的控制(我不工作,也不支持Telerik)。您可以从商店下载Telerik示例应用程序以查看正在使用的应用程序。这个控制正是你需要的。它和其他ItemsControl一样工作。您设置ItemsSource和ItemTemplate。

<telerikPrimitives:RadSlideView ItemsSource="{Binding Articles}" 
        IsLoopingEnabled="False" <!-- Will NOT go back to the beginning --> 
        ItemRealizationMode="ViewportItem"> 
    <telerikPrimitives:RadSlideView.ItemTemplate> 
     <DataTemplate> 
      <Grid Margin="12,0,0,0"> 
       <!-- Content -> 
      </Grid> 
     </DataTemplate> 
    </telerikPrimitives:RadSlideView.ItemTemplate> 
</telerikPrimitives:RadSlideView> 
+0

我也认为他们真的很吸引人。然而,我希望我能够绕过一个简单的解决方法,我(或者说公司)不必付钱,因为它实际上是一个非常奇怪的用例和一个相当简单的应用程序。 –

+0

这就是说;不是我不想为一套优秀的控件支付99美元,而是我认为让我的雇主相信,通过50件以上的产品滑动是比较少见的情况,而不是让他们为控件支付费用。 –

+0

感谢您的支持。我在公司与我的家伙交谈,他说他们拥有Telerik牌照:)。所以突然间,我所有丑陋的Pivot黑客都从代码隐藏中消失了。 –