0

「行」のリストを含むリストビューがあります。これには、「列」のリストが含まれます。今のところ、行と列の両方に List を使用しています (つまり、List があり、それが Rows オブジェクトです。List がありますが、数値が大きくなるにつれて、GUI の更新にかかる時間とプログラムの全体的なパフォーマンスが向上します。さらに、アイテム (行内の列) が変更されたときに GUI に通知されないため、Item.Refresh を実行する必要があり、毎回全体が更新されるように見え、パフォーマンスが低下します。

全体を高速化するために使用できる他のタイプのオブジェクトはありますか? つまり、次の点を満たす必要があります。 - そのリストを高速化 - 新しい行を追加すると、リストビューが更新されます。可能です。リストビュー全体ではなく、新しい行のみが追加されます。- Columns オブジェクトを変更すると、GUI が更新されます。可能であれば、変更された列オブジェクトのみが影響を受けるため、リストビュー全体は変更されません。

列オブジェクトを表示するために、舞台裏でかなりの数の実際の計算があることに注意してください。私は現在、この目的の最適化に取り組んでいますが、より良いコレクションを使用すると、ここで非常に役立つと確信しています.

ありがとう

4

1 に答える 1

2

あなたが探しているのはObservable Collectionだと思います

このコレクション タイプは、アイテムが追加されたときに CollectionChanged イベントを発生させます。コレクションを更新する必要はありません。これは、WPF コントロールがすぐに使用できるためです。

ノート

CollectionChanged イベントは、個々の要素が更新されたときに発生しません。これらの更新を UI に表示する場合は、コレクション内のオブジェクトでINotifyPropertyChangedを実装する必要があります。

于 2013-03-27T19:26:59.143 に答える