labelとvalueの2つのプロパティを持つバインド可能なモデルクラス(myModelと呼びます)があります。値は頻繁に更新されるため、バインド可能としてマークされます。これまでのところ正常に動作し、データが更新され、標準のプロパティ変更イベントがディスパッチされます。
次に、このモデルのオブジェクトインスタンスからArrayCollectionを作成して、データグループのデータプロバイダーとして使用する必要があります。次に、データはカスタムitemRendererに渡され、そこでdata.labelとdata.valueを介してmyModelプロパティにアクセスします。
私が今抱えている唯一の問題は、myModel値プロパティがそれ以上変更されないことです(オブジェクトをArrayCollectionに格納したためだと思います)。
myModelの新しいオブジェクトインスタンスを実行時に追加できるため、ArrayCollectionもバインド可能としてマークされています。
これを機能させる方法はありますか?これに関する助けをいただければ幸いです。
編集:myModelクラスの値オブジェクトが別のバインド可能なクラスによって更新されていることをほとんど忘れていました。はい、私はそれがばかげていることを知っていますが、それが私がここにいる理由です。この問題を解決するためのより簡単な(そして実際に機能している)方法についていくつかの情報を得るためです。
2番目の編集:わかりました。問題を説明するためのコードを少し追加します。
最初のバインド可能なクラスから始めましょう。
[Bindable]
public class FirstClass
{
public var name:String;
public var firstValue:Number;
public var secondValue:Number;
public var thirdValue:Number;
public function FirstClass()
{ }
}
値(1番目から3番目)は、コントローラークラスによって更新されます。ここまでは順調ですね。次に、2番目のモデルクラスに移ります(一貫性の問題については、MyClass名を保持しましょう)
[Bindable]
public class MyClass
{
public var label:String;
public var value:Number;
public function FirstClass()
{ }
}
これらは2つのモデルクラスです。この背後にある背景は、FirstClassのインスタンスの各プロパティに文字列値(ラベル)が必要なことです。私はこれをもっと簡単にしたいので、私はこの「解決策」の咳に本当に落ち着きません;)。
とにかく、2つのモデルがあります。これが私の.mxmlクラスです。
[Bindable] private var firstClassInstance:FirstClass;
新しいArrayCollectionを作成し、次のようなオブジェクトを追加します。myArrayCollection.addItem(new MyClass( "これはラベルです"、firstClassInstance.firstValue));
また、DataGroupはこのArrayCollectionをデータプロバイダーとして使用します。
すでに確立しているように(@Windownsに感謝)、ArrayCollectionは、追加または削除されたオブジェクトのみを検索し、これらのオブジェクトのプロパティの変更は検索しません。