コンパレータ関数を使用してモデルを並べ替えるコレクションがあります。モデルには、それらをソートするために使用されるランク属性があります。
モデルビューには、ランク属性を1つアップグレードおよびダウングレードするためのボタンがあります。コレクション変更イベントをリッスンすることで、モデルのランク属性が変更されるたびに「ソート」を呼び出すことができ、リストを並べ替えることができます。
問題は、ランクを一意に保つことです。現在、単一のモデルのランク値を変更しているだけで、他のモデルには影響しません。例えば:
- アイテムA、ランク1
- アイテムB、ランク2
- アイテムC、ランク3
に:
- アイテムA、ランク1
- アイテムB、ランク1
- アイテムC、ランク3
残りのモデルのランクを変更するスマートな(バックボーン)方法はありますか?
手動で行う必要がある場合、それを行うための良い戦略は何ですか?現在、モデルのビューからモデルを変更しており、コレクションのビューの変更を聞いているため、隣接するモデルのランクに影響を与える明確な方法はありません。