問題タブ [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.

0 投票する
1 に答える
3494 参照

c# - WPF MVVM バインディング Checkbox.IsChecked をディクショナリ内の名前付きアイテムに

すべてが同じ種類の異なる選択を表すチェックボックスのグループがあります (私の例では、それらはすべて異なるファイルの種類です)。ViewModel の個々のプロパティにそれぞれをバインドするのはやり過ぎのように感じます。それらをすべて 1 つのコレクションにバインドし、バインド構文を使用して、各チェックボックスをコレクション内の特定の項目にキーでバインドすることをお勧めします。私はMVVMパターンに固執しようとしているので、怠惰になってCheckedイベントなどを処理したくないだけです。

WPF バインディング構文を使用してコレクション内のパスまたはキーを表現する方法はありますか? たとえば、Dictionary<string, bool>呼び出された FileTypes を ViewModel のパブリック プロパティとして公開する場合、チェックボックスの 1 つを FileTypes["aspx"] にバインドする方法はありますか? のようなより複雑なデータ構造がある場合はどうなりDictionary<string, Dictionary<string, int>>ますか?

0 投票する
1 に答える
12052 参照

wpf - グリッド行の高さをWPFのコンテンツにバインドします

数行のグリッドがあります。一番上の行には、コレクションに動的にバインドされ、DataTemplateSelectorとItemsPanelTemplate(水平に配置された単一のWrapPanelを使用)を使用するItemsControlがあります。これが私がこれまでに持っているものの簡略版です:

最初の行の高さを40に設定する代わりに、ItemsControlがそのすべてのコンテンツに適合するために必要な最小の高さに基づいて動的に設定したいと思います。ItemsControlの高さは、グリッド行の高さによって制約されているため、どの要素にバインドする必要があり、どの要素のプロパティにバインドする必要があるのか​​がわかりません。

グリッド行の高さをItemsControlの「目的の高さ」にバインドすることは理にかなっています。そこで、DesiredSizeプロパティを見つけて、RowDefinitionのHeightをItemsControlのDesiredSize.Heightにバインドしました。これは最初にロードされたときに機能しますが、コントロールのサイズを変更しても更新されません(ItemsPanelTemplateとしてWrapPanelを使用しているため、ウィンドウのサイズを変更すると、ItemsControlの高さが変更されます)。

この種の状況がバインディングフレームワークによってサポートされているかどうかを誰かが知っていますか、またはこれを達成するためにイベントハンドラーコードを追加する必要がありますか?

ありがとう。

0 投票する
2 に答える
1008 参照

c# - itemtemplateの辞書へのバインド

List <Dictionary <string、string>>があります。GridViewのItemTemplateで、キーに基づいてディクショナリの値にバインドしたいと思います。

コードビハインドを使用せずにこれを行う方法はありますか?辞書に新しいキーが追加されたときにのみItemTemplateを変更する必要があります。

0 投票する
2 に答える
1170 参照

c# - BindingExpression.UpdateSourceは例外を飲み込みます

次のコードスニペットは、私の問題の簡略版です。基本的に、updatesourceが呼び出されたときにセッターで発生するエラーをキャッチし、それを以下に示すキャッチブロックまで伝播しようとしています。問題は、updatesourceの下の呼び出しスタックで例外が発生した場合、BindingExpression.UpdateSource()がそのエラーをキャッチして処理しているように見えることです。例外を取得して、catchステートメントに戻すことはできません。この動作を無効にすることはできますか?

////////////////////////////////////////////////// ////////////////

0 投票する
1 に答える
384 参照

silverlight - Silverlight でバインディングの変更を検出できますか?

バインディングがいつ変更されたかを検出する方法はありますか? 私は値について尋ねているのではなく、バインディング式自体を意味します。

0 投票する
2 に答える
4626 参照

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 は正常に動作します。

0 投票する
2 に答える
1304 参照

c# - GetBindingExpression は Loaded イベントで null を返します

Loaded イベントで GetBindingExpression メソッドを呼び出そうとしていますが、常に返されますnull

これは予期された動作ですか、それとも何か間違ったことをしていますか? 予想される場合、どのイベントの後にバインディング式が使用可能になりますか?

カスタムコントロールを作成するだけです

そして、このコントロールを xaml で使用します

コントロールが初期化され、そのメソッドがnullを返すときにバインディング式を取得したい:

0 投票する
0 に答える
148 参照

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 を「白」などの一定の色に設定すると、機能します。

バインディングの何が問題になっていますか?

0 投票する
1 に答える
244 参照

c# - バインディング式から依存関係プロパティを取得する

私は Binding 式オブジェクトを持っています:

Dependecy プロパティを取得したい。

たとえば、bindingExpression取得したい TextBox のテキストの場合TextBox.TextPropertyなど。

これは可能ですか?