私はWPFとC#を使用しています。WPFを使用してスクロールエリアに何千ものコントロールを作成する最良の方法は何ですか?
私は問題があります。私はスクロール可能な領域に多くのバインド可能なテンプレートコントロールを作成する必要があります(すべて異なるタイプです)。たとえば、1000個のテキストボックス、1000個のドロップダウンリスト、および1000個のチェックボックス。
問題がすべて作成されると、実際には遅くなります。
問題は、多くのコントロールを遅れなくシンプルにすることが可能かどうか、解決策を探すべき方向は何か?私は、テンプレートを使用する能力、データバインディング、マウスクリックのような簡単なイベント処理を保存したいと思います。
P.S.私はたくさんのもの(幾何学のみのレンダリング、異なる基底クラスなど)を試みましたが、現時点では私のために働いている(私はまだ試していませんでした)唯一のアプローチは、現在のビューポートに収まるコントロールだけを作成し、スクロールのコントロールのこのリストを更新してください。
P.P.Sスクロール中にリスト項目を再利用するときにListBoxで使用される3.5 SP1の仕組みがあることは知っていますが、これらの項目はすべて異なる種類なのでここでは使用できません。
ありがとうございます。
多くのデータバインディングを持つコントロールの数が少ないほど、他の方法よりも優れていることがわかりました。 FrameworkUIElementは非常に高価です。 – user7116
@sixlettervariables:それは私がここで言っていたことです - リストボックスと同じように、スクロール中にコントロールの数を減らし、データバインディングを再割り当て(再利用)する方が良いでしょう。彼はスクロール中にさらに位置/レイアウトを追加するだけで済みます。 –
問題は、そのコントロールには多くの種類があることです。 私は、問題をより理解しやすくするために、テキストボックスやその他のプリミティブについて述べました。 実際には、いくつかのテキストボックス、グラフィックプリミティブ、アニメーションなどを含むコントロールがあります。 再利用によるアプローチを使用する場合は、基本的なコントロールタイプをいくつか作成する必要があります。 –