DataGrid+ArrayCollectionでリスト要素のBindableプロパティーを変更するとエラーになる場合の対処方法
ArrayCollectionをDataGridでリスト表示していた。
そしてリスト要素オジェクトで内のBindableプロパティーを変更しようとしたら,このようなエラーになった。
エラーの意味はよくわからんが,なんだかソートが関係しているようだ。確かにArrayCollectionにはソートを設定していた。
そこで,要素のプロパティーを変更する時だけ一時的にソートを無効にして再設定するという方法を試したらうまくいった。
なお,変更したい要素のプロパティーがBindableでない場合はエラーは起こらないようなので,Bindable設定と何か関係があるのかもしれない。
そしてリスト要素オジェクトで内のBindableプロパティーを変更しようとしたら,このようなエラーになった。
Error: 検索条件には、最低 1 つのソートフィールド値が含まれている必要があります
at mx.collections::Sort/findItem()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\collections\Sort.as:541]
エラーの意味はよくわからんが,なんだかソートが関係しているようだ。確かにArrayCollectionにはソートを設定していた。
そこで,要素のプロパティーを変更する時だけ一時的にソートを無効にして再設定するという方法を試したらうまくいった。
//一度ソートを無効にしてからリストの要素を変更しないとなぜかエラーになるので //設定されているソートを退避させる var sort:Sort = list.sort; list.sort = null; //リストの要素を変更 var item:Object = list.getItemAt(0); item.index++; //ソートを再設定してリフレッシュ list.sort = sort; list.refresh();
なお,変更したい要素のプロパティーがBindableでない場合はエラーは起こらないようなので,Bindable設定と何か関係があるのかもしれない。
コメント
コメントを投稿