アプリで検索機能を作成しようとしていますが、検索結果が 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>