問題タブ [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.
wpf - GridView での双方向データ バインディング
GridView との単純な一方向バインディングを使用してデータを表示するアプリがあります。さて、ユーザーがそのデータの一部を変更できるようにする必要があるため、GridView で双方向のデータ バインディングを機能させようとしました。これまでのところ、すべてが正しく表示されていますが、GridView でセルを編集しても何も起こらないようです。私は何を台無しにしていますか?このような双方向のデータバインディングは可能ですか? おそらく DataGrid のように、別のコントロールを使用するようにすべてを変換する必要がありますか?
私の問題を示す小さなテストアプリを作成しました。試してみると、初期化後にプロパティ セッターが呼び出されないことがわかります。
Xaml:
そして、対応するコードは次のとおりです。
silverlight - Silverlight の双方向バインディングが機能しないのはなぜですか?
Silverlight TwoWay バインディングの仕組みによると、FirstName フィールドのデータを変更すると、CheckFirstName フィールドの値が変更されるはずです。
そうでないのはなぜですか?
答え:
ジェフに感謝します、それでした、他の人のために:ここにダウンロード可能なコードを含む完全なソリューションがあります.
XAML:
コードビハインド:
wpf - ObservableCollection を DataTemplate の TextBoxes にバインドするにはどうすればよいですか?
ObservableCollection を DataTemplate の TextBoxes に正常に TwoWay バインドしようとしています。データを正しく表示することはできますが、UI からリスト データを変更することができません。「リスト」という名前の ObservableCollection を含む「モデル」という名前のモデル クラスがあります。クラスは、INotifyPropertyChanged インターフェイスを実装します。シェルの xaml は次のとおりです。Window1 のグリッドの DataContext は、「theGrid.DataContext=model」に設定されています。
これはモデル クラスのコードです。
私がこれを正しい方法で行っているかどうか、誰にもアドバイスできますか?
wpf - WPF、ハッシュテーブルへの双方向バインディングはソースオブジェクトを更新しません
誰かが助けてくれるかどうか疑問に思っています。ハッシュテーブルにバインドして値を正しく表示できますが、指定した双方向バインドでは、変更を加えてもオブジェクトが更新されません。
それがDataTemplateにあることと関係があるかどうかわかりませんか?
wpf - WPF 双方向バインディング: TextBox を、設定したばかりの値の書式設定されたバージョンで更新するにはどうすればよいですか?
DateField
文字列Value
プロパティを持つ というクラスがあります。このプロパティを有効な日付に解析できる文字列に設定Value
すると、プロパティ セッターは適切にフォーマットされた日付に設定します。
このフィールドにバインドされた TextBox を作成します。
たとえば、"010109"
このフィールドに入力してタブから移動すると、プロパティがこの文字列にBinding
適切に設定されます。Value
プロパティ セッターが実行され、_Value
正しく設定され"01/01/2009"
(TryParse
このクラスの実装は、受け入れられるものよりも少しカトリック的DateTime.TryParse
です)、PropertyChanged
イベントが発生します。リストに登録されている別のオブジェクトが更新されるため、この最後のビットが発生していることはわかっています。
しかし、そうでTextBox
はありません。なぜだめですか?私は設定Value
しました、私は上げましたPropertyChanged
; 私はこれ以上何をする必要がありますか?
c# - ListView TwoWayバインディングへの辞書-可能ですか?
2つのテキストボックスを持つグリッドで構成されるアイテムテンプレートであるListViewに辞書をバインドしようとしています。理想的には、ListViewに表示されるKeyValuePairのキーと値の両方を変更できるようにしたいと思います。それは可能ですか?
wpf - SelectedItem への ListBox TwoWay バインド
この質問が何度も聞かれるのを見て、自分のコードを何度も調べてきました。しかしSelectedItem
、オブジェクトを使用してバインドされたプロパティに割り当てると、ディスプレイの選択されたアイテムが更新されません。はListBox
、割り当てたオブジェクトがそのアイテムのメンバーではないと考えているようです。
これは、私が設定しようとしている場所の 1 つからの impl ですSelectedTube
- 間違いなくメイン スレッドで発生します。
手動でクリックしない限り強調表示されないことに気付きましたSelectedTube
が、無視していました。しかし、選択したアイテムをScrollIntoViewCenteredしたかったので、変更DependencyProperty
を監視するためにビューにa を追加しましたSelectedItem
。ハンドラーは最初は次のように見えました。
SelectedItem
しかし、バインディングを介して設定すると機能しませんでした。画面上にない場合にのみスクロールしたいと判断した後、コードを次のように変更しました。
が外部で設定されている場合SelectedItem
、コンテナは null です。毎回。ItemsSource
null をチェックするコードを追加してから、一致するファイル名を探して繰り返し処理し、更新してリストボックス内のオブジェクトが間違いないSelectedItem
ことを確認しました。SelectedItem
運がない。
アイテムが画面上にある場合、それはまだ強調表示されません。ある種の等価関数を実装する必要がありますか? 私はこれについて、人が考えているよりも多くの時間を無駄にしました。
ありがとう。
c# - コントロールをWPFのコレクション/配列の単一の値にバインドします
WPFには、ブール値のコレクションがありますか?値と私はこれらのそれぞれをプログラムで別々のチェックボックスにバインドしたいと思います。コード内のコレクション内の個々のアイテムの値を変更するとチェックボックスが更新され、その逆も同様になるように、バインディングをTwoWayにする必要があります。
私はこれを行う方法を理解しようと何年も費やしてきましたが、完全に行き詰まっています。次のコードでは、チェックボックスはウィンドウがロードされたときにのみ正しい値を取得します。それだけです。チェックボックスを変更しても、コレクションの値は更新されません。(更新:コレクションは同一の.NET3.5プロジェクトで更新されるため、これは.NET4のバグのようです。更新:Microsoftはバグを確認しており、.NET4リリースで修正される予定です。)
よろしくお願いします!
C#:
XAML:
c# - WPFで双方向のデータバインディングを実現するにはどうすればよいですか?
WPFでの双方向バインディングについてはよく耳にしますが、それを実現する方法や実際の意味については完全にはわかりません。
たくさんListView
のアイテムが入っています。ユーザーが新しいアイテムを選択するTextBox
と、アプリケーションのaはそのテキストを変更して、選択したアイテムのプロパティを表示します。
ただし、ユーザーがテキストボックスのテキストを変更した場合は、ListView
アイテムもすぐに更新する必要があります。これを実現するための「双方向バインディング」の魔法のWPF方法はありますか?
wpf - WPF 双方向 DataBinding - DataView への編集可能な ComboBox
コンボボックスのテキストを編集しているときに、バインドされたデータ セットが変更されません。つまり、ターゲットからソースへのバインディングは行われていません。