を変更した後、私はこのように定義されたコンボボックスの列を持つデータグリッドを持っています。しかし、コンボボックス内のテキストボックスのテキストは別のデータグリッドで編集可能で、別のObservableCollection(QualityItemCollection)に入れて、上のグリッドのコンボボックスを取得するようにしました。そのコレクションが変更されたときに発生するデータグリッドのイベントがあります。これにより、QualityInfoAssortmentCollectionが再度読み込まれるようになります(コンボボックスも再度設定する必要があるため、動作させるにはループがいくつかあります)。コンボボックスのパフォーマンスのItemsSource
ここで、初めてデータが読み込まれたとき、すべてが素晴らしく、ダンディーですが、QualityInfoAssortmentCollectionを更新しているイベントが発生したときに、コンボボックスに入るには5〜7秒かかります。リフレッシュそのものは時間がかかり、10分の1秒もかかりません。コンボボックスには8〜10行しかありませんが、他の場所で提案されているように仮想化スタックパネルを使用しようとしても違いはありません。それを表示するデータグリッドには約10行があるので、シャッフルする必要がある膨大な量のデータにも近くない。
編集:定義しているQualityItemCollectionを使用できないという詳細な説明。 QualityItemColletionは、上記のDataGridのすべての項目で同じですが、チェックするチェックボックスの情報は、上のグリッドのアイテムごとに設定されています。したがって、QualityItemCollectionのコピーをQualityItemAssortmentCollectionに作成します。このコレクションには、チェックボックスのboolもあります。これを行うより良い方法があるかもしれませんか?
編集2: 今すぐWPFプロファイラを試してみてください。プログラムのようにロックされ、プログラムが奇妙なことをしている間は何も表示されません。しかし、それはVisual Studioの機能です。なぜなら、Visual Studioを使わずにプログラムを単独で実行すると遅延がないからです。わーい。
私はこれを取得しませんでした...'コンボボックスのテキストボックスのテキストは別のデータグリッドで編集可能です。グリッドのコンボボックスを更新するには、コレクションが変更されたときに発生するデータグリッドのイベントがあります。 '...コレクションが観測可能な場合は、なぜそれを修正することができないのですか?あなたが話しているその出来事の目的を理解できませんでした。 –
少し説明してみました。 – PerK