問題タブ [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.
wpf - ソース プロパティからのバインドを通じて DependencyObject を解決する
私の例では、 DataContext にこれがあるとしましょう:
XAML :
今、私DataContext
は参照する必要がありますmyContentControl
。
バインディングソース(MyViewModel.SomeProperty)を介してバインディングターゲット(ContentControl.TagProperty)を解決するために作成されたBinding オブジェクトを使用する方法はありますか?
質問のコンテキスト:
DataGrid から派生した CustomControl があります。このグリッドは Filtering をサポートし、ヘッダー テンプレート内に TextBox を配置しました。グリッド自体は TextChanged イベントをリッスンし、各列をそのテキストでフィルター処理します。
各 TextBox への参照を保存する代わりに、または VisualTree をトラバースする代わりに、textBox.Text に保存した参照から TextBox を追跡できるかどうか疑問に思っていました。
2 つの質問が頭に浮かびます。
1)テキストは文字列であり、不変であるため、バインディングがそれをどのように追跡するかわかりません。
2) Binding Source (Path) から Binding Target を解決することは可能ですか?
c# - BindingExpression の問題を解決するのに助けが必要
私はこのスタイルを持っています:
しかし、コマンドは正しく機能しません。出力ウィンドウを見ると、次の問題が発生します。
ViewModel ICommand プロパティ:
これを解決する方法がわかりません。Button の Command プロパティはどのように文字列として解釈されますか?
何か意味があるとすれば、これはメイン ウィンドウではなく、App.xaml ファイルにあります。
c# - ASP.NET バインディング式を使用して複数の If ステートメントを記述する
ASP.NET Web フォーム バインディング式を使用して、トリプル ネストされた if ステートメントを使用する必要があります。私は次のことを試しました:
問題は、最初の if ステートメントで発生します。書きたい値を書き込んでいません ... :/ 誰かがこの if ステートメントを適切にフォーマットする方法を教えてくれますか??
Eval("PraviTier") の書き込み - 1.5 Eval("ProductTierPrice") の書き込み - 1.25
代わりに Eval("PraviTier") は 1.25 の値を書き込んでいます...なぜですか???
ここに私が何を意味するかを示す写真があります:
ヒントはありますか??
PS 最初の If ステートメントが完全に無視されているかのように?!
編集:ストアドプロシージャが返すものを確認しました...データベースでEval( "TierPricing")がtrueに設定されています...ここで何が問題になる可能性がありますか?:/
c# - WPF BindingExpression パス エラー
、、などのBaseModel
フィールドを持つモデルがあります。Id
Created
Deleted
Name
このモデルから、モデル と を派生さCategory
せBrand
ました。モデルBrand
にはフィールドがありますImage
。
また、クラスがありますNode
(名前としてのタイトルとすべてのオブジェクトとしての値)
のクラスを使用Node
しComboBox
ます。そのため、カテゴリとブランドの ComboBox があります。原因 カテゴリとブランドは、同じクラスに使用する BaseModel から派生していますNode
存在する場合は<ComboBox.ItemTemplate>
表示したい。Image
だから私は次のコードを書きました:
それは機能し、Brand
アイテムの画像のみを表示しますImage
。
しかし、出力ウィンドウに次のメッセージが表示されます。
System.Windows.Data エラー: 40: BindingExpression パス エラー: 'Image' プロパティが 'object' ''Category' (HashCode=56044044)' に見つかりません。BindingExpression:Path=Value.Image.FileLocation; DataItem='ノード' (HashCode=65381042); ターゲット要素は 'Image' (Name='ImageCheckBox') です。ターゲット プロパティは 'Source' (タイプ 'ImageSource')
前に読んだように、Binding の例外は WPF アプリのパフォーマンスに影響を与える可能性があります。この問題を解決するにはどうすればよいですか?
c# - Datatemplate トリガーのコード ビハインドからバインディング式を取得する
ログ用のリストボックスがあるwpfアプリケーションを維持するように設定されています。
listbox を使用して表示されるアイテムのタイプは ですTextMessage
。つまり、リストボックスはこれらのテキスト メッセージにバインドされています。
ObservableCollection<TextMessage> Messages;
listBox.DataContext = Messages;
メッセージは次のようなもので追加されます
Messages.Add(new TextMessage("Test", TypeOfMessage.Headline));
これがクラスの定義ですTextMessage
リストボックスの xaml 定義は次のようになります。
これはうまく機能します (つまり、メッセージはタイプに応じて異なるフォントの太さと色でリストボックスに表示されます) が、ここで質問です:
BindingExpression またはその他の手段を使用して、xaml 定義のコード ビハインドからフォントの書式設定と色を取得する方法はありますか?
その理由は、書式設定を 1 か所 (現在は xaml のみ) に配置したいが、フォントの書式設定を含む内容を (コード ビハインドを使用して) クリップボードにコピーするときに再利用できるようにするためです。 .
例:
私はwpfが初めてなので、誰かがこれを解決するためのヒントを持っていると本当に感謝しています. (私はここstackoverflowで解決策を見つけようと懸命に努力しましたが、これまでのところ成功していません)
前もって感謝します、
キングはマグナスに敬意を表します