首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winrt-xaml的自定义虚拟化包装面板

winrt-xaml的自定义虚拟化包装面板
EN

Stack Overflow用户
提问于 2013-05-18 18:52:10
回答 1查看 1.3K关注 0票数 0

我正在尝试在我的应用程序中创建搜索功能,但当搜索结果产生超过1000行时,会出现一个错误,它说:

代码语言:javascript
复制
Exception   {"Not enough quota is available to process this command. (Exception from HRESULT: 0x80070718)"} System.Exception

我知道这是因为系统正在尝试对UI进行大量更改,并且更改太多,因此系统终止了它,因为完成该请求将需要很长时间。

我很清楚这一点,因为我使用了一个自定义的wrapPanel控件来测量每个项目的高度并在UI中创建区块,并且当我使用诸如wrapgrid或virtualizingstackpanel这样的虚拟化控件时,没有出现错误。

所以,我想要完成的是,有没有可能创建一个像wrap面板这样的自定义控件,但虚拟化数据,这样错误就不会再出现。如果可以,我们如何做到这一点?使用增量数据加载还是什么?

对不起,我是winrt-xaml的新手,我正在尝试弄清楚它是什么:)

更新:

这是我获取WrapPanel.cs的链接,这是我的XAML代码,如下所示:

代码语言:javascript
复制
    <GridView x:Name="gvResult">
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <local:WrapPanel
                    Orientation="Vertical"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid Margin="5">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto"/>
                        <RowDefinition Height="auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="300" />
                    </Grid.ColumnDefinitions>
                    <TextBlock Width="300" TextWrapping="Wrap">
                        <Underline>
                            <Run FontWeight="Medium" Text="{Binding abbKitab}"/><Run Text=" "/><Run FontWeight="Medium" Text="{Binding numBab}"/>
                            <Run FontWeight="Medium" Text=":"/> <Run FontWeight="Medium" Text="{Binding numAyat}"/>
                        </Underline>
                        <LineBreak/>
                        <Run Text="{Binding isi}"/>
                    </TextBlock>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
EN

回答 1

Stack Overflow用户

发布于 2013-05-19 13:40:21

也许如果你从OrientedVirtualizingPanel派生出你的WrapPanel,它就能工作,但我不敢打赌这是可能的。您可以使用自定义虚拟化实现创建自己的列表控件,但这似乎更难。也许放弃自定义面板,只使用WrapGrid,或者在虚拟化面板中对结果进行分组,例如,让特定大小的页面代表结果组,每个结果组在WrapPanel中具有特定数量的项?然后,您可以将虚拟化卸载到外部面板,并使用自定义的样式设置每个组的样式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16623432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档