2012-03-09 12 views
2

私の理解では、ListViewのデフォルトのItemsPanelはVirtualizingStackPanelです。私のリストビューのGroupStyleを作成すると、リフレッシュレートはひどいです。この記事のコメントに基づいてグループ化を使用するとListViewの更新が非常に遅い

WPF ListView Very Slow Performance - Why? (ElementHost, or Other Reason?)

GroupStyleはのStackPanelでデフォルトVirtualStackPanelを上書きします。私は明示的にListViewのItemsPanelとしてVirutalzingStackPanelを宣言していますが、パフォーマンスはまだ悪いです。なぜグループ化が遅いのですか?おそらく、私は理解していないグループ分けで何かが起こっている可能性があります。

+0

問題文から。 "GroupStyleはデフォルトのVirtualStackPanelをStackPanelで上書きします。" VirtualStackPanelを宣言しても問題ありません。 – Paparazzi

+0

グループ化を使用した回避策はありませんか?グループ化されていないListViewのレートで実行されない場合、役に立たない機能のようです。 – Bubbles

+0

マイクロソフトにそんなに不満はない。 – Paparazzi

答えて

2

以下の記事の著者は、このようなリストボックスまたはリストビューなど、仮想化している通常のWPFのItemsControlで

に言及したように、あなたがグループ化電源を入れたときに、仮想化がオフになります。この サンプルでは、​​グループ化の視覚的外観を同じにする方法と、仮想化を維持しながら同じAPIの を示しています。

サンプルプロジェクトで開発したこのソリューションをご覧ください。しかし、簡単で簡単な方法ではありません。

Grouping and Virtualization

このメソッドは、.NET 4.0およびそれ以前のために提案されていることを覚えておいてください。 VirtualizingPanel.IsVirtualizingWhenGroupingのようなこのような状況に対処する.NET 4.5に導入された新しいメソッドがあると私は信じています。しかし、私は.NET 4.5のatmにアクセスできないので、これをテストしていません。

VirtualizingPanel.IsVirtualizingWhenGrouping Attached Property

それはグループを表示したときに、このVirtualizingPanel は、そのコレクション内のアイテムを仮想化するかどうかを示す値を取得または設定します。

+1

'VirtualizingPanel.IsVirtualizingWhenGrouping'を使うと大きな違いがあります。ありがとうございます。 – Sinatr

+1

私の一日を保存しました。 'VirtualizingPanel.IsVirtualizingWhenGrouping'がうまく動作します。 – Heena

関連する問題