0

グループ化にPagedCollectionViewを使用しています。DataGridと検索ボタン付きのテキストボックスがあります。グリッドのItemSourceは私のPagedCollectionViewであり、グリッド内のアイテムはバックグラウンドプロセスによってバインドされたオブジェクトを更新できるため、PagedCollectionViewはObservableCollectionをラップします。[検索]をクリックすると、最初にObservableCollectionでクリアしてから、データベースからのデータをロードします。コレクションをクリアと呼んだ瞬間、列を含め、DataGridのコンテンツが消えます。アイテムが私のコレクションに追加されると、それらは再表示されます。列とそのヘッダーが消えると、並べ替え順序などが失われることは言うまでもなく、非常に不快なものになるため、列とそのヘッダーはそのままにしておく必要があります。ObservableCollectionなので、アイテムはすぐに消えると思います。ただし、前述のバックグラウンドプロセスで行を更新できるようにする必要があります。PagedCollectionViewをラッパーとして削除し、DataGridのItemSourceをObservableCollectionに設定しただけでは、この動作は発生せず、コレクションがクリアされても列とヘッダーは保持され、行はバックグラウンドプロセスによって即座に更新されます。他の誰かがこの振る舞いを観察しましたか?誰かが回避策を知っていますか?それとも私は何か間違ったことをしているだけですか?他の誰かがこの振る舞いを観察しましたか?誰かが回避策を知っていますか?それとも私は何か間違ったことをしているだけですか?他の誰かがこの振る舞いを観察しましたか?誰かが回避策を知っていますか?それとも私は何か間違ったことをしているだけですか?

4

1 に答える 1

0

AutoGenerated 列を使用していたため、問題が発生しました。コレクションをクリアするたびに、PageCollectionView によって列が再生成されました。そのプロパティをオフにし、Blend を使用して列を「事前生成」することで、この問題を回避することができました。

于 2009-11-30T14:54:40.100 に答える