清除PivotItem缓存

时间:2013-10-11 14:46:32

标签: c# windows-phone-8 windows-phone windows-phone-7.1

我知道你不应该为一个数据透视控件添加超过7个项目,但它很容易使用。

直到现在我才遇到问题:我有一个透视项目模板,用于呈现文章(说,日期,标题,内容)。我正在使用一个支点,因为当我轻弹文章时我想去下一个/上一个。然而,经过一些电影(~50,小小的深渊)后,我得到一个OutOfMemoryException。内存使用情况表明,PivotItem内容是在第一次访问时动态生成的,但是它们不会被释放。

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

那么:有没有可能的方法来指定缓存应该有多大?或者至少是一种从给定的ViewModel重新生成PivotItem内容的合理方法?

1 个答案:

答案 0 :(得分:1)

我建议使用Telerik's SlideView控件。 In my mind,没有理由不使用Telerik的控制权(我不为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>
相关问题