0

アプリで検索機能を作成しようとしていますが、検索結果が 1000 行を超える場合、次のようなエラーが表示されます。

Exception   {"Not enough quota is available to process this command. (Exception from HRESULT: 0x80070718)"} System.Exception

これは、システムが UI に多くの変更を加えようとしていることが原因であることを知っています。その要求を完了するには長い時間がかかるため、システムが終了しました。

すべてのアイテムの高さを測定してUIにブロックを作成するカスタムwrapPanelコントロールを使用しているため、wrapgridやvirtualizingstackpanelなどの仮想化コントロールを使用すると、エラーが表示されないため、私はそれをよく知っています..

だから、私が達成しようとしているのは、ラップパネルのようなカスタムコントロールを作成することは可能ですが、エラーが表示されないようにデータを仮想化することは可能ですか? 増分データロードまたは何を使用しますか?

申し訳ありませんが、私はwinrt-xamlが初めてで、それが何であるかを理解しようとしています:)

アップデート :

これは、 WrapPanel.csを取得するリンクであり 、これは私の XAML コードのようです:

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

1 に答える 1

0

おそらく、あなたWrapPanelOrientedVirtualizingPanelそれを派生させればうまくいくでしょうが、私はそれが可能であることに賭けません. カスタム仮想化実装を使用して独自のリスト コントロールを作成することもできますが、それはさらに難しいようです。カスタム パネルをあきらめて、WrapGrid を使用するか、結果を仮想化パネルにグループ化します。たとえば、WrapPanel に特定の数のアイテムを含む結果のグループを表す特定のサイズのページがありますか? 次に、仮想化を外側のパネルにオフロードし、各グループをカスタム パネルでスタイル設定することができます。

于 2013-05-19T05:40:21.047 に答える