清除数据透视项缓存

本文关键字:缓存 透视 数据 清除 | 更新日期: 2023-09-27 18:35:10

我知道您不应该向透视控件添加超过 7 个项目,但它非常易于使用。

直到现在我什至没有遇到问题:我得到了一个呈现文章(例如日期、标题、内容)的透视项模板。我正在使用枢轴,因为在轻弹文章时,我想去下一个/上一个。但是,经过多次轻弹(~50,有点深渊),我得到了一个OutOfMemoryException。内存使用情况表明,数据透视项内容在首次访问时会动态生成,但随后不会释放。

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

那么:有没有可能的方法可以指定缓存应该有多大?或者至少是一种从给定视图模型重新生成数据透视项内容的理智方法?

清除数据透视项缓存

我建议使用Telerik的SlideView控件。在我看来,没有理由不使用Telerik的控制(我不为Telerik工作,也不得到Telerik的认可)。您可以从商店下载 Telerik 示例应用程序以查看其使用情况。此控件正是您所需要的。它的工作方式就像任何其他 ItemsControl 一样。设置"项源"和"项模板"。

<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>