2017-04-06 3 views
1

アイテムをグループ化するWindows Phone 8.1 WinRTアプリにListViewがあります。グループテンプレートが定義されており、Rectangleオブジェクト、FillプロパティのオブジェクトはImageBrushです。 ListViewには、項目とグループを表示するItemsPanelとしてItemsStackPanelがあります。ItemsStackPanelは、毎回それらを再作成する代わりにキャッシュされたアイテムを使用し続けます。

問題は、イメージが一度読み込まれて描画されるために仮想化中にアイテムコンテナを再利用することですが、私がスクロールすると、イメージオーダーがイメージを失うイメージで、スクラブされてしまいます。 ImageBrushのいずれかが発砲されず、アイテムがキャッシュされていることを示します。

ItemsStackPanel"Recycling"の代わりにVirtualizingStackPanel.VirtualizationMode="Standard"を設定しようとしましたが、効果がないようです。

ご協力いただければ幸いです。

+0

コードビハインド内のリストビューアイテムオブジェクトを使いこなしていませんか?私はこれがテンプレートで正しく実行している場合、WPFでこれが起きることはないと知っていますが、あなたは本当にUWPにいると思うし、WPFタグを追加して、私のケースでは、おそらく私は古いか、十分な過敏ではない)仕事。 –

+0

私が行う唯一のことは、何らかの理由でメインイメージを開くことができない場合(ImageBrush.ImageFailedイベントを購読することです)(ただし、アイテムが最初に作成された後ではハンドラがヒットしない)。同じソースにバインドされたItemsWrapGridにはこの問題はありません。何か案は? Windows Phone 8.1のWinRTがプラットフォームだと言いましたが、私はWPFが誰かが同じ問題を抱えていて助けてくれるかもしれないと考えました。 – TheAgent

+0

アイデアがありません、申し訳ありません。私はあなたでしたが、私は問題を再現する最小の例を作成します。私にとっては、単純な文脈では問題を再現できないので、破られていない例と実際のコードが壊れていることを比較し、解決策を見つけるだけです。しかし、MVCEを書くことができれば(うまく動かない、という意味)、助けようとしている誰にとっても大きな助けになるだろう。 –

答えて

0

ItemsStackPanelのグループヘッダーテンプレートでの処理ImageBrush.ImageFailed(または他のイベント)は非常に奇妙な動作を引き起こします。

私は実際にこの問題を解決していませんでした。イベントハンドラを削除し、メインイメージファイルが見つからないときにデフォルトイメージをロードする別のメカニズムを実装しました。

Imageに読み込まれた別のデフォルト画像があり、もう一方の画像の上にImageが置かれ、実際の画像ファイルがロードされています。読み込みに失敗すると、下のものが表示されます。

関連する問題