問題タブ [bindable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - Flex バインディング: 予期しない動作
Flex のバインディングで予期しない動作が発生することに気付きました。私のコードは次のとおりです。
アプリケーションコード
Model.MyDummy クラス コード
Model.DataDummy クラス コード
動作は次のとおりです。
- buttonChange1 をクリックすると、インスタンス myDummy で _resetMyProperty が呼び出されます。
その結果、ラベル「labelRaw」のテキストは変更され、ラベル「labelFormatted」のテキストは変更されません。これは、Flex のドキュメントによると、MyPropertyFormatted が読み取り専用プロパティであり、その読み取り専用プロパティがアプリケーションの初期化時にのみバインドされ、その後ではバインドされないために発生します。これで、私は同意します。 - buttonChange2 をクリックすると、ArrayCollection Model.DataDummy.Dummies のすべての MyDummy 要素で resetMyProperty メソッドが呼び出されます (この静的プロパティは DataGrid にバインドされます)。
その結果、DataGrid の 2 番目の列が MyDummy オブジェクトの同じ読み取り専用プロパティ MyPropertyFormatted にリンクされているにもかかわらず、DataGrid の両方の列の値が変更されます。これは、私が説明した以前の動作と矛盾していると思います。
私のポイントは次のとおり
です。 1. 一方では、コントロールを特定のオブジェクトの単一のインスタンスにバインドしているため、バインドは彼の読み取り専用プロパティでトリガーされません。
2.一方、同じ特定のオブジェクトのコレクションにコントロールをバインドすると、すべてのプロパティ (読み取り専用かどうかに関係なく) でバインドがトリガーされます。
ポイント1の読み取り専用プロパティでバインディングをトリガーする場合は、イベントをディスパッチし、読み取り専用プロパティのMetaTagで、このイベントに従ってバインディングがトリガーされることを正確にする必要があります(クラスModelのコードのコメントを示すように) .MyDummy クラス)。
この動作が異なるのはなぜですか? ArrayCollection インスタンスのバインディングが何を行い、単一のインスタンスのバインディングが何を行わないかを正確に理解したいと思います。
ご協力ありがとうございました。
flash - addeventlistenerのショートカットを簡単にバインドしています
addeventlistenerの略記である以外に、バインディングのポイントを本当に理解したことはありません。
それ以上のものはありますか?私は何かが足りないのですか?
ありがとう、dsdsdsdsd
apache-flex - Flex3でMXML変数をバインド可能にするにはどうすればよいですか。
mxmlを使用するときにBindableコンパイラ設定を使用することは可能ですか?
バインド可能にしたい文字列があります。
次のように、Actionscriptでバインド可能にすることができます。
しかし、私の状況ではMXMLを使用したいと思います。
私は試した:
しかし、それは多くの警告を投げました-他のクラスは私のアプリですでにバインド可能としてマークされていました。
apache-flex - Item Renderer を使用して ArrayCollection を編集する
List
カスタム アイテム レンダラーとArrayCollection
forでスパークを使用しdataProvider
ます。
ItemRenderer は次のようになります
ただし、txtValue1
またはのテキストを変更してもtxtValue2
、ArrayCollection 内のオブジェクトでは実際には変更されません。
myFirstValue
とタグmySecondValue
が飾られています。[Bindable]
私の理解では、text
プロパティが特定のプロパティにバインドされるように設定されている場合、変更は自動的に適用されるはずです。
したがって、私が使用するHACK(またはそう思う)はfocusOut
、各テキストボックスのイベントをリッスンし、親データプロバイダーにアクセスして値を手動で設定することです。
私は何を間違っていますか?このように動作するはずですか?
または、私は何を間違って理解しましたか?
winforms - プロパティがデータソースに表示されるようにするにはどうすればよいですか?
これは Windows フォームに関する質問です。私が何をしているのかを詳細に説明しすぎて申し訳ありませんが、前に詳細を少なくして尋ねたところ、誰も読んでいないようです.
XX という Linq オブジェクトがあります。Visual Studio の .dbml ファイルにテーブルをドロップしたときに作成されました。
次に、インターフェイスをプログラムしやすくするために、Visual Studio で [データ] -> [データ ソースを表示] に移動し、オブジェクト データ ソースを作成します。オブジェクトのすべてのプロパティがデータ ソースに表示されます。
しかし、linq クラスは部分的なので、次のようにします。
あなたはこれまでフォローしていますか?
次に、オブジェクト データ ソースを再作成します。
プロパティ myValue がデータ ソースに表示されません。
私はこのようにそれを装飾しようとしました:
無駄に。これは通常、「linq ではない」Plain クラスのトリックを行います。
問題は、私のプロパティがデータ ソースに表示されるようにするには、どうすればよいでしょうか?
flash - メタデータ[Bindable]キーワードを持つ基本クラスは、EventDispatcherを自動的に拡張しますか?
私は少し奇妙なことに遭遇していますが、おそらく他の誰かが以前にこれに遭遇しました。
私は基本クラスを持っていますが、それは何も拡張しません。それを呼びましょう...
しかし、私はその公開されたプロパティのすべてをバインドしたいと思います:
クラスのデバッグ/プロファイリング中に、プロパティが変更されるたびに、FooBarのインスタンスが「.dispatchEvent() 」を呼び出していることに気づきました。しかし、私のクラスはEventDispatcherを拡張していません。
何が得られますか?
これは、コンパイル時に、私のクラスがEventDispatcherまたはイベントをディスパッチする機能を備えた他のクラスを自動的に拡張することを意味しますか?クラスに「 addEventListener」メソッドが宣言されていない場合、どうすればPropertyChangeEventをリッスンできますか?
apache-flex - Flex:タブラベルを変数にバインドする
dataProviderがビュースタックであるカスタムタブバーを使用しており、関連するコンテナー(ビュースタック内)のデータが更新されたときにタブラベルを更新しようとしています。
ビュースタックのコンテナはバインド可能な変数にバインドされているため、変数が変更されると、コンテナ内のデータ/ラベルなどは更新されますが、タブは更新されません。
タブを同じバインド可能な変数にバインドする方法はありますか、それともイベントハンドラーを作成する必要がありますか(そうであれば、どのイベントですか)?
apache-flex - バインド可能なArraycollectionのバインド可能なプロパティをリッスンします
labelとvalueの2つのプロパティを持つバインド可能なモデルクラス(myModelと呼びます)があります。値は頻繁に更新されるため、バインド可能としてマークされます。これまでのところ正常に動作し、データが更新され、標準のプロパティ変更イベントがディスパッチされます。
次に、このモデルのオブジェクトインスタンスからArrayCollectionを作成して、データグループのデータプロバイダーとして使用する必要があります。次に、データはカスタムitemRendererに渡され、そこでdata.labelとdata.valueを介してmyModelプロパティにアクセスします。
私が今抱えている唯一の問題は、myModel値プロパティがそれ以上変更されないことです(オブジェクトをArrayCollectionに格納したためだと思います)。
myModelの新しいオブジェクトインスタンスを実行時に追加できるため、ArrayCollectionもバインド可能としてマークされています。
これを機能させる方法はありますか?これに関する助けをいただければ幸いです。
編集:myModelクラスの値オブジェクトが別のバインド可能なクラスによって更新されていることをほとんど忘れていました。はい、私はそれがばかげていることを知っていますが、それが私がここにいる理由です。この問題を解決するためのより簡単な(そして実際に機能している)方法についていくつかの情報を得るためです。
2番目の編集:わかりました。問題を説明するためのコードを少し追加します。
最初のバインド可能なクラスから始めましょう。
値(1番目から3番目)は、コントローラークラスによって更新されます。ここまでは順調ですね。次に、2番目のモデルクラスに移ります(一貫性の問題については、MyClass名を保持しましょう)
これらは2つのモデルクラスです。この背後にある背景は、FirstClassのインスタンスの各プロパティに文字列値(ラベル)が必要なことです。私はこれをもっと簡単にしたいので、私はこの「解決策」の咳に本当に落ち着きません;)。
とにかく、2つのモデルがあります。これが私の.mxmlクラスです。
新しいArrayCollectionを作成し、次のようなオブジェクトを追加します。myArrayCollection.addItem(new MyClass( "これはラベルです"、firstClassInstance.firstValue));
また、DataGroupはこのArrayCollectionをデータプロバイダーとして使用します。
すでに確立しているように(@Windownsに感謝)、ArrayCollectionは、追加または削除されたオブジェクトのみを検索し、これらのオブジェクトのプロパティの変更は検索しません。
user-interface - 別のスレッドでの @Bindable 変数の変更は、対応する UI 要素に反映できますか?
時間の短縮を示す GUI を使用してカウント ダウン タイマーを実装する方法を学習しています。@Bindable
時間短縮の変更が対応する UI ラベルに自動的に表示されることを期待して、Groovy を使用しています。
カウントダウン時間の値の削減は、UI スレッドとは別のタイマー スレッドで行われます。ただし、カウントダウン タイマーは UI で更新されません。
UI のカウントダウン時間を適切に更新する適切な方法は何ですか?
flex4 - クラス「Foo」で「foo」をバインドできません
「メッセージをバインドできません」が以前に尋ねられたことは知っていますが、私の場合は違うと思います...
アプリケーションがデバッグ モードで実行されているときに、どうすれば解決できるかわからない警告が表示されます...
これがゲッターであることは理解していますが、そのようなフィールドはありません。これには、CounterpartyBase にあり、Java 側の com.company.model.Counterparty にも存在する nonCreditRelevant フィールドのロジックが含まれています。
いくつかの場所にこれがありますが、これに対する回避策はありますか?
ありがとう