私はフレックスデータグリッドを持っています。配列コレクションにバインドされています。ユーザーが列 X でソートすると、正常に動作します。次に、ユーザーが配列コレクションを変更すると、データグリッドはそれが列 X でソートされたことを忘れます。
新しい配列データが列 X で並べ替えられて表示されるように、この並べ替え設定を保持するにはどうすればよいですか?
私はフレックスデータグリッドを持っています。配列コレクションにバインドされています。ユーザーが列 X でソートすると、正常に動作します。次に、ユーザーが配列コレクションを変更すると、データグリッドはそれが列 X でソートされたことを忘れます。
新しい配列データが列 X で並べ替えられて表示されるように、この並べ替え設定を保持するにはどうすればよいですか?
この質問を別のフォーラムに投稿したところ、うまく機能する良い回答が得られました。ここにあります:
データが ArrayCollections にある場合、ListCollectionView を子の AdvancedDataGrid の dataProvider プロパティに割り当て、ArrayCollection データを ListCollectionView の「リスト」プロパティに割り当てることができます。子グリッドのデータを変更する場合は、ListCollectionView の list プロパティを再割り当てします。このようにして、子グリッドの dataProvider を直接再割り当てすることを回避します。これにより、グリッドがリセットされます。
投稿へのリンクは次のとおりです。 http://forums.adobe.com/message/2206736#2206736
それは本当に役に立ちました、ありがとう。ただし、並べ替えをリセットしたらRefresh()
、次のことを忘れないでください。dataProvider
dataGrid.dataProvider.refresh();
私は同じ種類の問題を抱えていますが、なぜそれが起こっているのかわからなかったので、微調整をしました
selectedItems=dataGrid.selectedItems;
postionGrid=dataGrid.verticalScrollPosition;
sortPostionGrid=dataGrid.dataProvider.sort;
それらを変数に保存し、データが変更されたら、グリッドに再度配置するだけです。これは良いアプローチではありませんが、私にとってはうまくいきました