ListViewCachingStrategy 列挙型

定義

ListView のキャッシュ方法を列挙します。Enumerates caching strategies for a ListView.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

[System.Flags]
public enum ListViewCachingStrategy
type ListViewCachingStrategy = 
継承
ListViewCachingStrategy
属性

フィールド

RecycleElement 1

不要なセルのバインド コンテキストが必要なセルのバインド コンテキストに更新されていることを示します。Indicates that unneeded cells will have their binding contexts updated to that of a cell that is needed.

RecycleElementAndDataTemplate 3

RecycleElement によって指定されている動作だけでなく、DataTemplateSelector によって選択されている DataTemplate オブジェクトがデータ テンプレート型によってキャッシュされることを示します。Indicates that, in addition to the behavior specified by RecycleElement, DataTemplate objects that are selected by a DataTemplateSelector are cached by the data template type.

RetainElement 0

リスト ビューの ItemsSource プロパティのすべての項目について、DataTemplate から 1 つの一意の要素が作成されることを示します。Indicates that for every item in the List View's ItemsSource property, a single unique element will be constructed from the DataTemplate.

注釈

アプリケーション開発者で指定これらの値のいずれかを構築するとき、ListViewリスト ビューを一覧のセルを再利用して、メモリ フット プリントと速度の実行を最小限に抑えるか、リストのすべての項目のセルの生成が代わりにかどうかを判断します。Application developers can specify one of these values when constructing a ListView to determine whether the List View will minimize their memory footprint and speed execution by recycling list cells, or will instead generate a cell for every item in the list. 現時点では、既定の動作は、不要なときに、生成されたセル内の項目のデータを保持します。Currently, the default behavior is to retain item data in their generated cells when they are not needed. (項目は必要ありませんなどの表示が差し迫っているではないことに十分な画面外なった。)この動作は、の値に対応RetainElementします。(Items are not needed, for example, when they are far enough off screen that their display is not imminent.) This behavior corresponds to a value of RetainElement. パフォーマンス向上のために、既定の動作が変更されること可能性がRecycleElement将来のリリースでします。For performance reasons, it is likely that the default behavior will be changed to RecycleElement in a future release. それまでは、メモリとパフォーマンスの理由から、アプリ開発者する必要があります指定RecycleElement新しいリスト ビューを構築するときにします。In the meantime, for memory and performance reasons, app developers should specify RecycleElement when constructing a new List View.

パフォーマンスの利点RecycleElementようなリスト ビューを初期化するため、XAML の構文ショートカットのアプリケーション開発者が提供されていないこと。The performance advantage of RecycleElement is so great that application developers have been provided with a XAML syntax shortcut for initializing List Views. 代わりにX:typeargumentsのパラメーターを指定する構文、ListView(ListViewCachingStrategy)のキャッシュ戦略引数に対応する、存在しないプロパティのコンス トラクター、Xamarin.Forms 用 XAML の提供 XAML 属性コンス トラクター。Instead of x:TypeArguments syntax that specifies a parameter for the ListView(ListViewCachingStrategy) constructor, XAML for Xamarin.Forms provides a XAML attribute for a non-existent property that corresponds to the caching strategy argument of the constructor. アプリケーション開発者が設定できる、 CachingStrategy属性のいずれかをRecycleElement (推奨) またはRetainElementなキャッシュ戦略を選択する値。Application developers can set the CachingStrategy attribute to either of the RecycleElement (preferred) or RetainElement values to choose a caching strategy. 例:For example:


<ListView CachingStrategy="RecycleElement" >
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <!-- ... -->
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

開発者の指定とRecycleElementOnElementChangedセルがリサイクルされるときに、イベントは発生しません。When devolopers specify RecycleElement, OnElementChanged events are not raised when cells are recycled. 代わりに、セルは保持され、バインディング コンテキストが使用可能なセルでは、更新されたときに、プロパティの値が変更OnElementPropertyChangedイベントが発生します。Instead, the cell is retained and its property values change when the binding context is updated to that of an available cell, OnElementPropertyChanged events are raised. アプリケーション開発者が正しいイベントをリッスンするように注意する必要があります、そのレンダラーに既定の動作が変更された場合に更新する必要があることに注意してくださいRecycleElement将来のリリースでします。Application developers should remember to listen for the correct events, and should note that their renderers will need to be updated if the default behavior changes to RecycleElement in a future release.

UWP プラットフォームを無視RetainElementが常にキャッシュを使用してパフォーマンスを向上させるためです。The UWP platform ignores RetainElement, because it always uses caching to improve performance. したがって場合は、開発者がデータ バインディングを使用しないように選択して、必要がありますを使用OnBindingContextChanged()常に動作するために、UWP のセルのデータを更新する場合とRecycleElementが指定されました。Therefore, if the developer has opted not to use data bindings, they must use OnBindingContextChanged() to update cell data on UWP, because it always behaves as if RecycleElement was specified.

適用対象