Ok私はここで何か間違っていると思います。手動でPagedCollectionViewを並べ替えるときに例外が発生する
私は、カスタムタイプののObservableCollectionにマッピングされPagedCollectionViewを使用しています。ユーザーがDataGrid列をソートしようとするたびに、基礎となるコレクションを手動でソートできるようにしたい。
私は次のようでした:
obs = new ObservableCollection<Seats>(arrSeats);
view = new PagedCollectionView(obs);
INotifyCollectionChanged sortchangeNotifier = view.SortDescriptions as INotifyCollectionChanged;
sortchangeNotifier.CollectionChanged += new NotifyCollectionChangedEventHandler(sortchangeNotifier_CollectionChanged);
grdData.ItemsSource = view;
void sortchangeNotifier_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
// What to do here?
}
列ヘッダがクリックされるたびイベントハンドラが正しく呼び出されています。ただし、ObservableCollectionを変更しようとすると、次の例外が発生します。
Refreshが延期されているときに、PagedCollectionViewの内容または現在の位置を変更または確認できません。
独自のカスタムソートアルゴリズムを実装できます。何か案は?
ありがとうございます!
EDIT
まあ、これは特にクレイジーですが、私は、イベントハンドラメソッドでtry/catchブロックで自分のコードをラップする場合、変更が実際に適用されます。何か案は :) ?
Silverlightグリッドにはソートイベントがありません。 – SiN