問題タブ [two-way-binding]
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.
c# - PropertyChangedのWPF TwoWay Binding変更値
私は WPF アプリケーションを持っており、このアプリではカスタム UserControl を作成しました。このコントロールには、XML から定義済みのレイアウトをロードする機能があります。UserControl に BOOL DependencyProperty を設定して true に設定すると、目的のレイアウトが読み込まれます。さらに、完了時にフラグを False に戻すことで、このフラグを「クリア」したいと考えています。基本的に、PropertyChanged ハンドラー内の依存関係プロパティの値を変更しようとしています。
この例では、プロパティがいつでも false に更新されることはありません。私の実際のアプリケーションでは、トリガーがTrueに設定された最初のときに機能しますが、その後は機能しません。PropertyChanged の間ではなく、LoadTrigger = false を実行しているためだと感じています。
メインフォーム
メイン フォーム - コード ビハインド
ユーザー コントロール - コード ビハインド
ビューモデル
wpf - ListBox ItemTemplate の双方向バインディング
ListBox
編集可能な DataTemplate が TextBox です。Binding TwoWay はどこに設定すればよいですか? ItemSource または TextBox バインディングで? もしかして両方で?そして、それは内部でどのように機能しますか?継承されますか?したがって、ItemSource で Binding を設定すると、TextBox で継承されますか?
wpf - ConvertBack が呼び出されていませんか?
私はこのような ControlTemplate にグリッドを持っています
私がしようとしているのは、可視性をカスタム依存関係プロパティ「IsQuickMsg」にバインドすることです
この場合、コード ビハインドで IsQuickMsg を true に設定すると、Grid の Visibility が Visible through converter に設定されます。
グリッドが表示されると、ストーリーボードが開始されていくつかのアニメーションが再生され、終了後にグリッドの可視性が非表示に設定されます
ただし、ストーリーボードが終了すると、グリッドの可視性は非表示に設定されますが、可視性の値がカスタム依存関係プロパティ「IsQuickMsg」に変換されません。
ConvertBack 関数にブレーク ポイントを設定しましたが、呼び出されませんでした。
それで、私はここで何を間違っていますか?
wpf - WPFバインディング双方向データグリッド
私は単純な wpf プロジェクトを作成しています。DB に接続して DataGrid にバインドする必要があります。問題は、DB からデータを表示することはできますが、更新することはできません。私は答えを探していて、100の異なることを試しましたが、それが何であるかわかりません.
私のxamlデータグリッド:
私の見解
コードビハインド
c# - コンボ ボックスの双方向バインドでプロパティがリセットされる
アクティビティにあるデータグリッドにコンボ ボックスがあります。コンボボックスの選択に基づいて、別のグリッドにプログラムでコントロールを設定します。ユーザーは、これらのコントロールにデータを入力して保存します。コンボ ボックスがバインドされているオブジェクトには多くのプロパティがあり、そのうちの 2 つが選択された値のパスと表示メンバーのパスで使用されます。データは、コンボ ボックスの双方向バインディングを使用してバインドされます。ワークフローに配置された保存済みアクティビティが再度開かれると、データが正しく再ロードされ、正しいオブジェクトの値がコンボ ボックスに設定されます。ただし、UI レンダリングでは、コンボ ボックスに関連付けられている値のみがそのまま残ります (つまり、選択された値のパスと表示メンバーのパスにある値)。残りはリセットされます。
なぜこれが起こっているのでしょうか?
PS:バインドを に設定するOneTime
と取得の問題は解決しますが、読み込み後に UI に加えられた変更は反映されません。
コード ビハインド:
datagrid Loaded Event で、AllRules を次のように入力します。
ここでitem.Id
、 とitem.Name
は、サービス コールを介してデータベースから取得されます。
同じイベントで、以前に保存したルールも次のようにロードした場合:
どこSelectedRule
にRuleId, RuleName, Inputs and Outputs
もあります。
コード:
クラス:
Inputs プロパティと Outputs プロパティは、リフレクションを介してプログラムで生成されたコントロールから取得され、コンボボックスによって取り込まれたオブジェクトに追加されて保存されます。
ここでこの問題について調べましたが、解決策は私の問題を解決しません。どんな助けでも素晴らしいでしょう。
angularjs - 動的角度ディレクティブでの双方向バインディング
したがって、私の目標は、一連のアクティビティを ng-repeat し、アクティビティ タイプに基づいて特定のディレクティブを表示することです。現在、そのアイデアが実行可能かどうかをテストしています。ディレクティブを動的に表示できますが、重要なのは、main.js 内のアクティビティと表示されるディレクティブの間で双方向のバインディングを行うことです。
main.html
main.js
dynamicDirective.js
activity1.js
activity1.html
今の設定だとconsole.logに$scope.instanceが未定義と出力されます。したがって、$scope.thisInstance.isIncluded のデフォルトは false です。main.html でattributes="instance='{{activities[0]}}'"
、$scope.thisInstance.isIncluded を正しく true に設定した場合、基本的にポインターとして渡される activities[0] の代わりに、値を渡すため、双方向バインディングはありません。 , { タイプ: "アクティビティ 1", isIncluded: true }. 双方向バインディングを機能させるにはどうすればよいですか? 出来ますか?これを行うより良い方法はありますか?