私はWPF/.NET 4を使用しています.VirtualizingStackPanel.VirtualizationMode = "Recycling"プロパティをListBoxに追加すると、スクロール時に何度も何度も繰り返されるアイテム。たとえば、100個のアイテムを持つListBoxがあり、一度に10個が表示されているとします。リストボックスが最初にロードされるとき、アイテム1〜10が表示されますが、スクロールして残りのアイテム11〜100を表示すると、スクロールするとアイテム1〜10が繰り返し表示されるため、アイテムを表示できませんリサイクルをスタンダードに戻すと、すべて正常に動作しますが、スクロールはひどく遅いです(ListItemはかなり複雑で、いくつかの画像、テキストフィールド、ボタンがあります)。リサイクルをオンにすると、スクロールは高速ですが、アイテム1〜10を見ることしかできません。何が間違っているのか、それを修正する方法はありますか?前もって感謝します。WPF ListBox VirtualizingStackPanel.VirtualizationStackPanel.VirtualizationMode = "リサイクル"により、同じリストアイテムが常に表示される
4
A
答えて
5
リサイクルモードは、その名前が示すように、レンダリングされたListBoxItemを再利用することによって機能します。 ListBox項目が、リストからスクロールされた項目を表示するために必要なくなった場合、ListBox項目は、スクロールして表示された項目を表示するために再利用されます。
ListBoxItemが表示している内容を変更するために、ListBoxは単純にそのDataContextプロパティを新しい項目に設定します。これには、ListBoxItemの内容がDataContextChangedイベントに正しく応答する必要があります。データバインディングのみを使用してコントロールにデータを入力する場合、これは自動的に行われます。しかし、あなたのコメントが暗示するように、コードビハインドを使用してプロパティを更新している場合は、イベント処理コードがその仕事をしていることを確認する必要があります。
関連する問題
- 1. 表示カスタムオブジェクトデータのListBox WPF
- 2. ListBox水平イメージを表示するWPF
- 3. 表示アイテムがリストアイテムに設定されているときに箇条書きが表示されない
- 4. リストアイテム内部(ImageView)がランダムに表示されない
- 5. WPFのListBoxのSelectedItemが時々表示されていない(スクロールが同期していない)
- 6. Visual Studio 2015:デザイナーと同じように実行してもアプリケーションが同じに表示されない
- 7. ハイチャートエラー#16:同じページにチャートが表示されない
- 8. ListBoxにXMLファイルを表示
- 9. rich:カレンダーアイコンが表示ボックスと同じ行に表示されない
- 10. tinymceコードがstackoverflowと同じように強調表示されますか?
- 11. 非常に異常なマージンが常にInternet Explorerに表示される[CSS]
- 12. UIAlertViewが非常にゆっくりと表示されます
- 13. 解析されたリストアイテムが正しくappsereratorに表示されない
- 14. WPFキャンバスに表示される要素
- 15. Selenum2:ハイパーリンクをクリックすると同じウィンドウハンドルが表示される
- 16. 異なるブラウザで同じブラウザが表示される
- 17. Listviewにリストアイテムを表示するには?
- 18. スムージネスがより多く表示され、より少なく表示される
- 19. 常に表示されるUITableViewとUITextField
- 20. wpfのusercontrol内のdatagridに縦スクロールバーが表示されない
- 21. MVC3(剃刀)で同じ部分表示が繰り返される
- 22. キーボードが表示された後にはじめて表示される
- 23. バックグラウンドカラーはリストアイテムの後ろには表示されません
- 24. SyncfusionのClearFilterボタンが通常より大きく表示されます
- 25. ブートストラップモードが自動的に表示されます(通常のように閉じる)
- 26. パターン - 常に同じパーティによって開始される通信
- 27. OpenCVウィンドウが常に上に表示される
- 28. 2行に同じ結果が表示されるのはなぜですか?
- 29. Google検索CSEが同じページに表示されている - AJAX/iframe overlay
- 30. Emacsでは、同じバッファが同じフレーム内の別のウィンドウに表示されないようにする方法はありますか?
商品アイテムのデータがありますか?綴じはどのように行われますか? ViewModel経由ですか?また、これらのアイテムは、Data/ControlTemplate、ItemContainer、またはUserControlを介して作成されていますか? – CodeWarrior
リストボックスの中にはデータバインドされているものと、コードビハインドからItemsSourceを設定したものの両方がありますが、どちらもこの問題を抱えています。そしてそれらのすべては、DataTemplateを使用して顧客のUser Controlを表示します。その値はListBoxItemの値を使用して設定されます。 – deadlydog