ItemContainerStyleSelector を持つ Windows ストア アプリに GridView があります。スタイル内には、ソースを設定するためのカスタム依存関係プロパティを持つ Image コントロールがあります (これは、Image のハンドルを取得し、アンロードされたイベントに接続できるようにするためです)。私の問題は、イメージがアンロードされず、再利用されているように見えることです。これは、ソースを設定すると、GridView 内の他の項目にも画像が設定されることを意味します (たとえば、画像を持たないオブジェクトがありますが、スクロールしてからもう一度戻ると、別のオブジェクトからの画像があります)。
可能な限り仮想化モードを標準に設定しようとしましたが、役に立ちません。どんなアイデアでも大歓迎です。
スタイルに含まれるイメージは次のとおりです。これは、設定時にメソッド「OnRemoteURISourceChanged」に渡されます。メソッドが呼び出されるたびに別のイメージ コントロールが期待されますが、そうではありません。
<Image x:Name="BackgroundImage" DataContext="{Binding CurrentBackdrop}" helpers:ImageExtensions.RemoteURISource="{Binding Uri}" Stretch="UniformToFill"/>
そして、ここに私のGridViewがあります
<GridView x:Name="ItemsGrid" Grid.Row="1" ItemsSource="{Binding BrowseResults}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" Margin="20,0,20,0"
IsItemClickEnabled="True" ItemClick="ItemsGrid_ItemClick" VirtualizingStackPanel.VirtualizationMode="Standard">
<GridView.ItemContainerStyleSelector>
<controls:UPnPCDStyleSelector CDObject="{StaticResource somestyle1}" Container="{StaticResource somestyle2}" Item="{StaticResource somestyle3}"/>
</GridView.ItemContainerStyleSelector>
<GridView.ItemsPanel>
<ItemsPanelTemplate VirtualizingStackPanel.VirtualizationMode="Standard">
<WrapGrid Orientation="Vertical" VirtualizingStackPanel.VirtualizationMode="Standard"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
更新: 問題は WrapGrid にあるようです。これを VirtualizingStack Panel に変更し、VirtualizationMode を Standard に設定すると、すべてが期待どおりに機能しますが、明らかに私のアイテムは 1 行にしか表示されず、複数行には表示されません。
WrapGrid の仮想化モードを設定するにはどうすればよいですか?