聴結合性有結合性Arraycollection
-
28-10-2019 - |
質問
私の結合性モデルクラスで呼んでいmyModelするとともに、物件のレーベル値とします。この値が更新され、ようすることができるものとして結合性.動作これまでのデータは更新され、標準のプロパティ変更イベントまでに出荷します。
しかし、今までにArrayCollectionからのオブジェクトのインスタンスのこのモデルとして使用してデータプロバイダにデータグループのデータを取得して得られたカスタムitemRendererるとは認められていないためにmyModel特性をデータ.ラベルすることがわかった。値とします。
唯一の問題は私の現在のmyModel valueプロパティな変更したいから保存のオブジェクトのArrayCollection).
のArrayCollectionは結合性どちなみ、新しいオブジェクトのインスタンスのmyModel追加できる時に行います。
れる方法はあります。のお役に立てるようにすればよろしくお願いいたします!
編集:そうそう、この値オブジェクトのmyModelクラスの更新を他の結合性クラスです。はい、知っているの虜になんらかの入力を簡素化(実働き)う必要がありません。
第2回の編集:Allrightあと少しのコードを説明するためには、問題
まずはランナーの最初の結合性クラス
[Bindable]
public class FirstClass
{
public var name:String;
public var firstValue:Number;
public var secondValue:Number;
public var thirdValue:Number;
public function FirstClass()
{ }
}
の値を取得し更新によるコントローラークラスです。これまでの方が良さそうですね。現在のモデルクラス(事項の一貫性能のMyClass名)
[Bindable]
public class MyClass
{
public var label:String;
public var value:Number;
public function FirstClass()
{ }
}
これらのモデル。の背景をなすことが必要とすることを文字列値(ラベル)の各物件のインスタンスの複.ねこのなんのって解決されないものは、いずれかにこの"ソリューション" 咳 ;).
とにかく、我々のモデルには、今my.mxmlのクラス
[Bindable] private var firstClassInstance:FirstClass;
新規作成しますArrayCollectionを追加したりしないというこ;myArrayCollection.addItem新MyClass(このラベル",firstClassInstance.firstValue));
のDataGroupこArrayCollectionとして、データプロバイダです。
として設立(願@Windowns、ArrayCollectionにしか見えなオブジェクト追加または削除されない中で特定のプロパティに変更されます。
解決 4
エイミーのアドバイスを受けて、アイテムアップデートの方法についてもう少し調査しました。結局のところ、解決策はすぐそこにありました。
ここを参照してください: http://flex4examples.wordpress.com/2009/08/28/1st/
この方法(バリエーションがほとんどない)をコードに適用しましたが、非常にうまく機能します。 iPad2のパフォーマンスは優れており、コンポーネントのメモリ使用も同様です。
エイミーがこのソリューションでも問題ないことを願っています。成功を祈っている。 ;)
他のヒント
保存されているアイテムの「ピース」を更新するときに、arrayCollectionでアイテムを呼び出します。
ができる多くの問題に結合する。てくださいコードに何が起こっています。ここでは"高レベルの"ものを見ることがお答え
利用の場合は、結合性arraycollectionオブジェクトにおいてもっとも重要なことの結合にarraycollectionだけのオブジェクトインスタンスの場合は追加または削除が行われたときに収集します。で知らないかもしれないプロパティ変化へのオブジェクトです。一般的に使用itemrendererの行を表示。いつもの"値"プロパティには、ラベルのitemrenderer.今がオブジェクトインスタンス(myModel)に変化していったかについての"価値"プロパティラベルのみです。もる必要がありますので注意してマークを他の物件まで結合する視覚的要素、[結合性]メタタグです。
public class myModel
{
[Bindable]
public var label:String;
[Bindable]
public var value:String;
public function myModel() {}
}
解答後にコードのポスト:
ときには、以下の
myArrayCollection.addItem(new MyClass("This is a label", firstClassInstance.firstValue));
考値firstClassInstance.firstValue供給することとして、ハードの値としてにわせるのではなく価値を参照)。その場合は、以下の
myArrayCollection.getItemAt(addedClassIndex).value = 5;
すな影響を与えることはありませんが変化するのfirstClassInstance.firstValueはありません"referening情報"に格納されています。ただ、基本的なタイプの番号であることはできませんを参照のような他のすべてのオブジェはフレックス.
かしてみてください:
[Bindable]
public class MyClass
{
public var label:String;
[Bindable] //might be redundant due to global [Bindable] flag, been a while since i've used a global one
public function get value():Number{
return m_objRef.firstValue;
}
public function set value(value:Number):void{
m_objRef.firstValue = value;
}
private var m_objRef:FirstClass;
public function MyClass(_label:String, _valueObj:FirstClass) {
m_objRef = _valueObj;
label = _label;
}
}
Allrightん(登;)後二時間ろとBindingUtils、その解決は私の問題です。二つのモデル授業をすることができくようになっており、そのインスタンスの複必要ない。単結合の値の性質複のvalueフィールドのMyClass作品としての期待や価値観のArrayCollectionの取得を更新しました。
そのソリューション
myClassObject = new MyClass();
myClassObject.label = "This is a label";
BindingUtils.bindProperty(myClassObject, "value", firstClassObject, "firstValue");
してくださmyClassObjectのArrayCollection.
いすべてのコードはこちらの擬似コードなのではない独自路線を貫いていず間違えやすい。
も@Windownsを示唆するとともに、複MyClassオブジェクトを組み込む私の最終ソリューションで切り替え特性や発(複たものだけでなく、4年目にしました。感謝!