問題タブ [binding-expressions]
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# - WPF MVVM バインディング Checkbox.IsChecked をディクショナリ内の名前付きアイテムに
すべてが同じ種類の異なる選択を表すチェックボックスのグループがあります (私の例では、それらはすべて異なるファイルの種類です)。ViewModel の個々のプロパティにそれぞれをバインドするのはやり過ぎのように感じます。それらをすべて 1 つのコレクションにバインドし、バインド構文を使用して、各チェックボックスをコレクション内の特定の項目にキーでバインドすることをお勧めします。私はMVVMパターンに固執しようとしているので、怠惰になってCheckedイベントなどを処理したくないだけです。
WPF バインディング構文を使用してコレクション内のパスまたはキーを表現する方法はありますか? たとえば、Dictionary<string, bool>
呼び出された FileTypes を ViewModel のパブリック プロパティとして公開する場合、チェックボックスの 1 つを FileTypes["aspx"] にバインドする方法はありますか? のようなより複雑なデータ構造がある場合はどうなりDictionary<string, Dictionary<string, int>>
ますか?
wpf - グリッド行の高さをWPFのコンテンツにバインドします
数行のグリッドがあります。一番上の行には、コレクションに動的にバインドされ、DataTemplateSelectorとItemsPanelTemplate(水平に配置された単一のWrapPanelを使用)を使用するItemsControlがあります。これが私がこれまでに持っているものの簡略版です:
最初の行の高さを40に設定する代わりに、ItemsControlがそのすべてのコンテンツに適合するために必要な最小の高さに基づいて動的に設定したいと思います。ItemsControlの高さは、グリッド行の高さによって制約されているため、どの要素にバインドする必要があり、どの要素のプロパティにバインドする必要があるのかがわかりません。
グリッド行の高さをItemsControlの「目的の高さ」にバインドすることは理にかなっています。そこで、DesiredSizeプロパティを見つけて、RowDefinitionのHeightをItemsControlのDesiredSize.Heightにバインドしました。これは最初にロードされたときに機能しますが、コントロールのサイズを変更しても更新されません(ItemsPanelTemplateとしてWrapPanelを使用しているため、ウィンドウのサイズを変更すると、ItemsControlの高さが変更されます)。
この種の状況がバインディングフレームワークによってサポートされているかどうかを誰かが知っていますか、またはこれを達成するためにイベントハンドラーコードを追加する必要がありますか?
ありがとう。
c# - itemtemplateの辞書へのバインド
List <Dictionary <string、string>>があります。GridViewのItemTemplateで、キーに基づいてディクショナリの値にバインドしたいと思います。
コードビハインドを使用せずにこれを行う方法はありますか?辞書に新しいキーが追加されたときにのみItemTemplateを変更する必要があります。
c# - BindingExpression.UpdateSourceは例外を飲み込みます
次のコードスニペットは、私の問題の簡略版です。基本的に、updatesourceが呼び出されたときにセッターで発生するエラーをキャッチし、それを以下に示すキャッチブロックまで伝播しようとしています。問題は、updatesourceの下の呼び出しスタックで例外が発生した場合、BindingExpression.UpdateSource()がそのエラーをキャッチして処理しているように見えることです。例外を取得して、catchステートメントに戻すことはできません。この動作を無効にすることはできますか?
////////////////////////////////////////////////// ////////////////
silverlight - Silverlight でバインディングの変更を検出できますか?
バインディングがいつ変更されたかを検出する方法はありますか? 私は値について尋ねているのではなく、バインディング式自体を意味します。
wpf - TextBox BindingExpression UpdateSourceTrigger=Explicit
LostFocus または Enter キーでセットを呼び出すには、ListView DataTemplate に TextBox が必要です。UpdateSourceTrigger = Explicit と、LostFocus および KeyUp のイベントを使用しました。問題は、BindingExpression への有効な参照を取得できないことです。
XAML
コードビハインドが機能しない
はヌルです。ListView.SelectedValueProperty と ListView.SelectedPathProperty を試しました。tbExistingValue を試すと、「存在しません」というメッセージが表示されて失敗し、コンパイルさえされません。適切な BindingExpression を取得するにはどうすればよいですか?? ありがとう。
UpdateSourceTrigger = LostFocus を設定してイベント ハンドラを削除すると、set が正しく呼び出されます。そこには有効な双方向バインディングがあります。明示的に使用して BindingExpression (be) への有効な参照を取得できません。
ページ上 (グリッド セル内) の TextBox に対しては正常に機能します。以下の xaml が機能します。
この BindingExpression は正常に動作します。
c# - GetBindingExpression は Loaded イベントで null を返します
Loaded イベントで GetBindingExpression メソッドを呼び出そうとしていますが、常に返されますnull
。
これは予期された動作ですか、それとも何か間違ったことをしていますか? 予想される場合、どのイベントの後にバインディング式が使用可能になりますか?
カスタムコントロールを作成するだけです
そして、このコントロールを xaml で使用します
コントロールが初期化され、そのメソッドがnullを返すときにバインディング式を取得したい:
binding - BindingExpression パス エラー itemtemplate
TabControl で次の ItemTemplate を使用して、タブ項目のコンテンツとタブ項目の前景色を設定しています。どちらのプロパティも同じ ViewModel クラスで使用できます。
「名前」プロパティに関しては、すべてが期待どおりに機能します。プロパティが変更されると、タブ項目の名前が変更されます。しかし、'Color' プロパティの場合、これは機能しません。私は得続けます
System.Windows.Data エラー: 40: BindingExpression パス エラー: 'Color' プロパティが 'object' ''String' (HashCode=2145491359)' に見つかりません。BindingExpression: パス = 色; DataItem='String' (HashCode=2145491359); ターゲット要素は 'ContentPresenter' (Name='') です。ターゲット プロパティは「フォアグラウンド」(タイプ「ブラシ」)
TextElement.Foreground を「白」などの一定の色に設定すると、機能します。
バインディングの何が問題になっていますか?
c# - バインディング式から依存関係プロパティを取得する
私は Binding 式オブジェクトを持っています:
Dependecy プロパティを取得したい。
たとえば、bindingExpression
取得したい TextBox のテキストの場合TextBox.TextProperty
など。
これは可能ですか?