問題タブ [multibinding]
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 - 1つのComboBox選択を2つの異なるデータにバインドできますか?
これが可能かどうかはわかりません。私はこのようなコンボボックスを作成しました...
利用可能なオプションをロードする背後にあるコードで...
MyClassのすべてのアイテムが正しく表示されるようにします。ユーザーが選択すると、MyClassのIdフィールドが意図したとおりに更新されます。素晴らしい。
これが私の問題です。私のtestCatListには、各行のIdとDescriptionの両方が含まれており、これらのフィールドの両方を現在のMyClassインスタンスにバインドしたいと思います。これが私が試したことです:
ここでは、MyClass.Idを選択したIdに設定し、MyClass.Descriptionを選択したDescriptionに設定したいと思います。ご覧のとおり、Idが必要なくなったため、SelectedValuePathを削除しました。しかし、コンバーターに何を使用すればよいかわかりません(上記の疑問符を参照してください)。
StackOverflowの専門家、何かアイデアはありますか?ありがとう。
wpf - 複数のプロパティに基づいてボタンを無効にします。MultiDataTriggerとMultiBindingを使用しています
私は自分の問題を実証するために思いつくことができる最も簡単な例の下に置きました。2つの条件のうちの1つに基づいてボタンを有効にしようとしています1)Textbox1が表示され、コンテンツが有効である、または2)Textbox2が表示され、コンテンツが有効である
可視性に基づいてボタンを有効にする途中のようですが、IsValidの側面は私に悲しみを与えています。
ボタンについては、ボタンを有効にする必要があるかどうかを評価するために、MultiDataTriggerとMultiBindingConverterメソッドを使用したMultiBindingを導入しました。メソッド(myConverterと呼ばれる)は、(ラジオボタンをクリックして)エディットボックスを切り替えるときに呼び出されますが、エディットボックス内のデータが有効、無効、または2つの間で遷移するときに呼び出されないようです。おそらく、私はValidation.HasErrorを正しく処理していません
私の具体的な質問:1)この問題を処理するための正しいパターンは何ですか?例はありますか?私は問題を単純化したと言わなければなりません。たとえば、検証は「8文字である必要があります」だけではなく、複数の編集ボックス(「アドレス」と「zip」または「アドレス」と「状態」など)が含まれる可能性があります。したがって、おそらく必要だと思います。 MultiBinding Converterのアイデアですが、他のアイデアも受け入れています!2)Converterメソッド内でValidation.HasErrorを処理するにはどうすればよいですか?私はそれをReadOnlyCollectionとして扱っていますが、これはおそらく完全に間違っています!3)私の問題の大部分は、エラー情報を処理するための多くの選択肢によるものだと思います。ValidationRulesを使用しているとすると、また、編集フィールドをサポートするプロパティから例外をスローする必要がありますか?彼らは呼ばれることはありますか?検証を行うためのさまざまな方法を示す記事をお勧めしますか?
以下にすべてのコードを配置しました。誰かがざっと見て、正しい方向に私を向けることができれば、私は最も感謝するでしょう。-DaveXAMLコード
C#コード
wpf - TextBox に ComboBox.SelectedValue を表示する
私はWPFに取り組んでおり、深刻な壁にぶつかっています。ContactName と ContactTitle の 2 つの列を持つデータ セットがあります。すべてのデータを ComboBox に正常にロードし、ContactName で並べ替えることもできました。ただし、そのデータにアクセスして、その一部を TextBox に表示しようとしています。(もちろん、これは概念実証タイプの演習にすぎません。最終製品では、選択した人物の情報がさまざまな TextBox に取り込まれます)。問題は、TextBox に入力する情報を取得できないことです。これが私が持っているコードです:
次に、これが私の XAML です。
私の最終的な目標は、選択した値を取得し、その CustomerID に関連付けられたデータセットの情報を取得することによって TextBox を動的に設定することですが、SelectedItem のテキストを TextBox に設定するだけでも大きなステップになります。
どんな助けでも大歓迎です。皆さんありがとう。
wpf - CornerRadiusでマルチバインディングが機能しないのはなぜですか
私がそれを使用する場合、IValueConverterそれは機能IMultiValueConverterしますが、同じ値を返す場合は機能しませんが、それはなぜですか?
マルチバインディングはこのエラーをスローします:
BindingExpressionによって生成された値は、ターゲットプロパティに対して無効です。; 値='15'
microsoft-metro - Metro UIマルチバインディング?
マルチバインディングはMetroUIでサポートされていませんか?それともまだ追加されていませんか?
wpf - データグリッドSelectedItemマルチバインディング
SelectedItemの値をデータグリッドから次の場所にバインドする必要があります。
同じページのコンボボックスのSelectedItem
ビューモデルのプロパティ
つまり、データグリッドの行を選択すると、コンボボックスの値が変更され、上記のプロパティの値もデータグリッドの選択されたアイテムの値に設定されます。
私はこのようなマルチバインディングを使おうとしました:
ここでのSelectedSapは、更新したいプロパティです。しかし、コンバーターでvalues()を見ると、SelectedSapに対応するvalue(0)は常にNothingであり、その結果、プロパティは希望どおりに変更されません。コンボとのバインドは正常に機能します。
マルチバインディングなしでテストしようとしています。つまり、コンボは気にせず、プロパティの値を変更するだけです。このような:
すべてが正常に動作します。トリックはどこにあり、必要な機能をどのように実装する必要がありますか?ありがとうございました。
wpf - コンボボックス コントロールを使用した multiBinding コンバーター パラメーターの適切なパス参照
コントロールに関するすべてのスタイリング情報と、ネストされているもの、コントロール テンプレート、およびトリガーがすべて揃っているので、次のことを理解しようとしています。
コンボボックス コントロールを取得します。標準表示 (ドロップダウン モードではない) で通常の表示を示すトグル ボタン コンポーネントのコントロール テンプレートがあり、表示値と、ドロップダウンをアクティブにするトグル ボタンが表示されます。
次に、上のトグル ボタンのテンプレートを使用するメインのコンボ ボックス コントロールがあります。
そのため、MultiBinding コンバーターの結果に基づいて、「ShowDisplayValueArea」の背景色を最終的に変更しようとしています。マルチバインディングコンバーターをtoggleButtonコントロールテンプレート領域に配置すると..
値オブジェクト配列の最初の「値」は、トグル ボタン コントロール テンプレートのインスタンスを正しく渡しています。名前だけでなく、オブジェクト参照全体。
では、Binding パラメーターに、トグル ボタンの元の実際のコンボ ボックス (つまり、トグル ボタンの親) を渡すように指示して、実際のコンボ ボックス コントロール全体をパラメーターとして渡す方法を説明します。
wpf - WPF: Grid.Visibility OneWay を依存関係プロパティにバインドし、OneWayToSource をビュー モデルの CLR プロパティにバインドする
Visibilityプロパティが親ExpanderコントロールのIsExpandedにバインドされているGridがあります。
Grid.Visibilityが変更されるたびに、それに応じてDataContext (ビュー モデル)のプロパティ ( MyProperty )を変更する必要があります。
これは私のXAMLです:
以下を使用して、ビューコンストラクターでバインディングをプログラムで設定しようとしました。
ただし、これは XAML で既に設定されているExpanderへのバインディングを置き換えるだけです。
これをひっくり返して、ターゲットがビューモデルでソースが代わりにグリッドになるようにし ( Visibilityにバインド)、MyPropertyを依存関係プロパティにすることを検討しました。しかし、私のビュー モデルはDependencyObjectではないため、これを行うことはできません。
MultiBinding / MultiConverterバインディングGrid.VisibilityをExpander.IsExpandedおよびMyPropertyに使用しようとしましたが、これには目的の効果がありません。Expander.IsExpandedの変更の結果としてGrid.Visibilityが更新された場合、MyPropertyはGrid.Visibilityに変更されません。
機能しているように見える唯一のオプションは、 Expander.IsExpandedにバインドするGridの添付プロパティを使用し、コールバック関数を使用して、添付プロパティが変更されるたびにGrid.Visibilityをプログラムで変更することです。次にGrid.VisibilityがMyPropertyにバインドされます。これは面倒な方法のように思えますが、私は提案を受け付けています。
私がやろうとしているのは、2 つのバインディングが反対方向にある 2 つのバインディングのようなもので、1 つは依存関係プロパティからのもので、もう 1 つは CLR プロパティへのものであると思います。
与えられることができるどんな助けにも感謝します!!
wpf - MultiBinding StringFormat ロジック: 区切り文字を出力しない
この XAML を考えると...
姓または名が NullOrEmptyの場合、「,」区切り文字を出力しないようにするにはどうすればよいですか?
ありがとうございました!