問題タブ [data-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 - ColumnDefinition の幅または RowDefinition の高さをデータバインドするにはどうすればよいですか?
WPF の View-Model-ViewModel パターンの下で、グリッド コントロールのさまざまな定義の Heights と Widths をデータバインドしようとしているので、GridSplitter を使用した後にユーザーが設定した値を保存できます。ただし、通常のパターンは、これらの特定のプロパティでは機能しないようです。
注:これは、Googleが失敗したため、私が投稿している参照の質問として投稿しています。これは自分で解決する必要がありました. 従うべき私自身の答え。
c# - C# ResetBinding が DataGridView を反転 *例で更新*
部分的に解決された問題がありました。簡単に説明すると、シリアライズが必要な複雑なオブジェクトにバインドされたグリッドがあります。オブジェクトがシリアライゼーションからビルドバックされると、グリッドのようなイベントはテーブル表示を更新しません。シリアル化を解除したら、イベントを再構築するように誰かに言われましたが、うまくいきました! しかし、グリッドを更新するイベントはまったく発生していないようです。
内部で何かが変化したことを知らせる複雑なオブジェクトからイベントを作成する必要がありました。このイベントから、このコードを追加しました:
問題は、グリッドが反転していて、ユーザーが良い感覚を持っていないことです (行が上下に移動し、停止するよりも)。
この種の反転を行わずにバインドをリセットするにはどうすればよいですか? どうすれば元の問題を解決できますか? (これにより、すべてが自動的に解決されます)。
アップデート
まったく同じ動作をする例を次に示します。
クラスを作成します。
ここで、BindingSource 呼び出し "bindingSource1" を使用してフォームを作成し、クラスをデータソースとして使用します。グリッドを作成し、グリッドを bindingsource1 にバインドします。
そのフォームでは、ロードで次のコードを使用します。
シリアル化プロセスをコメントに入れました。これがないと同じ奇妙な動作をするように見えるためです...今すぐアプリケーションを起動します。クライアントの名前を変更します。「新しい名前」の例「p1」を選択し、変更したセルの下のセルをクリックします。「len」列が変化していないことがわかります。ただし、len のあるセルをクリックすると、数値が正しい値に変化することがわかります。
誰でも理由がわかりますか?
wpf - DependencyPropertyとDataBinding?
WPFの場合:
誰かがDependencyPropertyとデータバインディングの関係を説明できますか?
コードの背後にプロパティがあり、データバインディングのソースになりたいです。このオブジェクトをXAMLのテキストボックスにバインドする場合、DependencyPropertyはいつ機能しますか(または機能しますか)。
.net - Loose XAML の制限事項は何ですか?
私は WPF を試し、Web ブラウザーで厳密な XAML マークアップをレンダリングしてきました。これは Loose XAML とも呼ばれます (こことここで説明されています)。
静的コンテンツを表示するのに最も役立つと思います。ただし、XML データ プロバイダーにバインドすることも可能です。
Loose XAML ファイルはアプリケーションでコンパイルされないため、次の制限が生じます。
- 外部アセンブリは許可されていません
- クラス、コード ビハインド (または任意の C#) を使用しない
- 双方向のデータバインディングなし
他にどのような制限がありますか?
- データベース プロバイダー (SQL Server) にデータバインドする方法が見つかりません
- ブラウザーで XAML をレンダリングするには、クライアント コンピューターに .NET Framework が必要ですか?
- 検索エンジンは、ページを適切にランク付けするために Loose XAML に問い合わせることができますか?
編集: XML データ プロバイダーを (この単純な例を使用して) Web サービスにバインドしようとしましたが、成功しませんでした。これらの調査結果は、これがサポートされていないことを発見したさらなる調査に私を導きます。他のソース (データベース レコード、Web サービス メッセージなど) から来る可能性のある XML データを処理します。」-Matthew MacDonald、プロ WPF
.net - ItemsPanelTemplate として Grid を使用する ListBox で奇妙なバインディング エラーが発生する
ListBox コントロールがあり、一定数の ListBoxItem オブジェクトをグリッド レイアウトで表示しています。そこで、ItemsPanelTemplate をグリッドに設定しました。
コード ビハインドからグリッドにアクセスして、RowDefinitions と ColumnDefinitions を構成しています。
これまでのところ、すべてが期待どおりに機能しています。各 ListBoxItem が表示される Grid.Row と Grid.Column を返すためのカスタム IValueConverter 実装がいくつかあります。
ただし、奇妙なバインディング エラーが発生することがあります。エラーが発生している理由や、コード内にエラーがあるかどうかさえも正確にわかりません。
エラーは次のとおりです。
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'ListBoxItem' (Name=''); target property is 'HorizontalContentAlignment' (type 'HorizontalAlignment')
誰が何が起こっているのか説明できますか?
ああ、これが私の XAML です。
.net - Windows ワークフローのアクティビティ間でデータを渡すにはどうすればよいですか?
ワークフローのやり方を完全に理解しているとは言えませんが、パイプライン n フィルター スタイルのモデルであれば、あるアクティビティから別のアクティビティにデータ (文字列も含む) を渡すことができるはずです。
誰もこれを行う方法を知っていますか? 動画でボーナスポイント!
これが可能であることを願っています。WFが私の考えと同じなら、非常に便利です。
c# - C#の別のコレクションに順番に格納されたIDでソートされたオブジェクトのコレクションへのWPFバインド
パズルが好きな方へ: 最近この問題が発生しましたが、もっと良い解決策があるはずです。
検討 :
- foosと呼ばれるFooオブジェクトの ObservableCollection 。
- Fooには文字列 ID フィールドが含まれています
- 私はfoosを制御できません
- フードが変わる
それで:
- sortLikeThisという別のコレクションがあります
- sortListこれには文字列が含まれます
- 文字列は、 fooが表示される順序の ID です。
プラス:
- sortLikeThisにない ID を持つオブジェクトが foos にある可能性があります。これらは最後に行く必要があります。
- 同様に、 foos には表示されない文字列が sortLikeThis に含まれる場合があります。
sortLikeThisの ID で定義された順序でfoosのFooオブジェクトにバインドして wpf に表示する良い方法はありますか?
.net - INotifyPropertyChanging と検証: PropertyChanging を発生させるのはいつですか?
INotifyPropertyChanged はかなり自明であり、いつそれを上げるべきか (つまり、値の更新が完了したとき) は明確だと思います。
INotifyPropertyChanging を実装すると、オブジェクトの状態を変更するセッターまたはその他のメソッドに入るとすぐにイベントが発生し、発生する可能性のあるガードと検証を続行する傾向があります。
そのため、プロパティが変更される可能性があるが、まだ変更されておらず、実際には変更が正常に完了していない可能性があるという通知としてイベントを扱っています。
オブジェクトのコンシューマーがこのプロパティを使用している場合 (変更追跡のためにイベントを使用する LINQ to SQL のように)、与えられた値が適切であり、オブジェクトの状態は変更に対して有効ですか?
このイベントのコントラクトは何ですか? サブスクライバーにはどのような副作用がありますか?
asp.net - EditItemTemplate フィールドの GridView で DropDownList をどのようにバインドしますか?
実行時にバインドされるグリッドビューのコードは次のとおりです。
ドロップダウンリスト「ddgvOpp」をバインドしたいのですが、方法がわかりません。すべきですが、しません。これが私が持っているものですが、「オブジェクト参照」エラーが発生し続けます。これは理にかなっています:
BindOpponentDD()
DropDownList が設定される場所はWhereです。適切なイベントでこれを行っていませんか? そうでない場合、どれに入れる必要がありますか?
事前にどうもありがとう...
c# - WPFデータバインディングとIValueConverter
WPFのバインディング式でコンバーターを使用すると、データが更新されても値が更新されないのはなぜですか。
単純なPersonデータモデルがあります。
私のバインディング式は次のようになります。
私のコンバーターは次のようになります。
コンバーターなしでデータをバインドすると、うまく機能します。
私は何が欠けていますか?
編集:いくつかのことを明確にするために、実装する必要のあるINotifyPropertyChangedインターフェイスに関してJoelとAlanの両方が正しいです。実際には実際に実装していますが、それでも機能しません。
ウィンドウタイトルをフルネームにバインドしようとしていて、ウィンドウタイトルがテンプレートを受け取らないため、複数のTextBlock要素を使用できません。
最後に、複合プロパティ "FullName"を追加してバインドするオプションがありますが、バインドでコンバーターを使用すると更新が行われないのはなぜか疑問に思っています。コンバーターコードにブレークポイントを設定しても、基になるデータが更新されたときにデバッガーがそこに到達しません:-(
ありがとう、ウリ