0

この問題はネットで調べてもよくわからないので皆さんに質問です。カスタム パネルの測定メソッド内で ItemsContainerGenerator を使用する場合と、コンテナで Recycle を呼び出す場合とを使用しない場合の違いを知りたいです。

私の推測では、ジェネレーターは新しいコンテナーを作成し、GenerateNext メソッドが呼び出されるとそれらをデータ項目に接続しますが、ジェネレーターは常に GenerateNext メソッドで項目をコンテナーに接続しますか? コンテナーを常にアイテムに接続するということは、既に生成/実現されているコンテナーをデータ項目に再度リンクするということですか?

recycle() メソッドを呼び出してコンテナーのリサイクルを開始するとどうなりますか。その場合、ジェネレーターは常にコンテナーをアイテムにリンクしますか?

スクロールのパフォーマンスは通常これに依存するため、これを求めています。ジェネレーターが常に項目をコンテナーに接続している場合、DataContext/Binding が更新され、スクロールが少し遅れます。ただし、recycle メソッドを使用してジェネレーターが Binding の更新を停止した場合、スクロールは非常にスムーズに実行されます。

4

1 に答える 1

0

Recycling 仮想化モードを使用している場合、コンテナーは再利用されるため、元のデータ オブジェクトに必ずしも接続される必要はありません。そのため、コンテナー テンプレートに、データ (またはその型またはプロパティ) の変更に基づいてビジュアル ツリーを再構築する要素が含まれている場合、それらは変更されます。パフォーマンスを向上させるために、可能な限りデータ変更テンプレートから独立して作成し、ビジュアル ツリーを最小化することをお勧めします。また、ClearContainer メソッドを変更して、データに依存しない一部のグローバル値をリセットしないようにすることもできます。これは、大きな親コントロール、設定への参照になる可能性があります。通常は一定ですが、変更時にビジュアル ツリーに影響を与えるものです。

于 2013-06-22T00:52:01.133 に答える