ListViewCachingStrategy 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ListView のキャッシュ方法を列挙します。
この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。
public enum class ListViewCachingStrategy
[System.Flags]
public enum ListViewCachingStrategy
[<System.Flags>]
type ListViewCachingStrategy =
Public Enum ListViewCachingStrategy
- 継承
-
ListViewCachingStrategy
- 属性
フィールド
名前 | 値 | 説明 |
---|---|---|
RetainElement | 0 | リスト ビューの ItemsSource プロパティのすべての項目について、DataTemplate から 1 つの一意の要素が作成されることを示します。 |
RecycleElement | 1 | 不要なセルのバインド コンテキストが必要なセルのバインド コンテキストに更新されていることを示します。 |
RecycleElementAndDataTemplate | 3 | RecycleElement によって指定されている動作だけでなく、DataTemplateSelector によって選択されている DataTemplate オブジェクトがデータ テンプレート型によってキャッシュされることを示します。 |
注釈
アプリケーション開発者は、 ListView を構築するときに、これらの値のいずれかを指定して、リスト ビューがリスト セルをリサイクルしてメモリ占有領域と実行速度を最小限に抑えるか、代わりにリスト内のすべての項目のセルを生成するかを決定できます。 現在、既定の動作では、不要な場合に、生成されたセルに項目データを保持します。 (たとえば、画面外で表示が差し迫っていないほど十分な場合など、項目は必要ありません)。この動作は、 RetainElementの値に対応します。 パフォーマンス上の理由から、既定の動作は将来のリリースで RecycleElement に変更される可能性があります。 それまでの間、メモリとパフォーマンス上の理由から、アプリ開発者は新しいリスト ビューを構築するときに RecycleElement を指定する必要があります。
RecycleElementのパフォーマンス上の利点は非常に優れているため、アプリケーション開発者には、リスト ビューを初期化するための XAML 構文ショートカットが提供されています。 ListView(ListViewCachingStrategy) コンストラクターのパラメーターを指定する構文x:TypeArguments
代わりに、Microsoft.Maui.Controls の XAML は、コンストラクターのキャッシュ戦略引数に対応する存在しないプロパティの XAML 属性を提供します。 アプリケーション開発者は、 CachingStrategy
属性を RecycleElement
(推奨) または RetainElement
値のいずれかに設定して、キャッシュ戦略を選択できます。 次に例を示します。
<ListView CachingStrategy="RecycleElement" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<!-- ... -->
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
注: 開発者が RecycleElementを指定した場合、セルがリサイクルされるときに OnElementChanged
イベントは発生しません。 代わりに、セルが保持され、バインディング コンテキストが使用可能なセルのコンテキストに更新されると、そのプロパティ値が変更され、 OnElementPropertyChanged
イベントが発生します。 アプリケーション開発者は、正しいイベントをリッスンすることを忘れないでください。また、将来のリリースで既定の動作が RecycleElement に変わる場合は、レンダラーを更新する必要があることに注意してください。
注: UWP プラットフォームでは、パフォーマンスを向上させるためにキャッシュが常に使用されるため、 RetainElementは無視されます。 そのため、開発者がデータ バインディングを使用しないことを選択した場合、 OnBindingContextChanged() を使用して UWP 上のセル データを更新する必要があります。これは、常に RecycleElement が指定されたかのように動作するためです。
適用対象
.NET MAUI