問題タブ [imultivalueconverter]

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 に答える
2430 参照

c# - IMul​​tiValueConverterを使用すると、DependencyProperty.UnsetValueが表示されます

WPFアプリで4つのTextBoxのテキストを連結するための単純なコンバーターを作成しました。

これがコンバーターです:

Xamlでは、次のコードを使用します。

デバッグ中、このエラーはCodeBoatTxtテキストボックス「DependecyProperty.UnsetValue」に表示されます。

コンバーターの何が問題になっていますか?

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

wpf - IMul​​tiValueConverter を使用した Wpf データ バインディングとキャスト エラー

WPF の学習の一環として、"Using Data Binding in WPF" ( http://windowsclient.net/downloads/folders/hands-on-labs/entry3729.aspx ) という MS ラボの演習を終えました。

IMul​​tiValueConverter の使用を説明するために、ブール値の結果を使用してデータ バインディングが現在のユーザーに関連するかどうかを判断するコード化された実装があります。変換操作のコードは次のとおりです。

XAML でこれを使用するための配線は次のとおりです。

コードは正常に実行されますが、XAML デザイナーは "指定されたキャストが無効です" で読み込まれません。エラー。キャストを使用しない方法をいくつか試しましたが、そのうちの 1 つを上記のコードでコメント解除しました。面白いことに、MS が提供する完成したラボ演習にもエラーがあります。

デザイナーを満足させるために修正する方法を知っている人はいますか?

乾杯、
ベリル

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

wpf - MultiBinding を使用して複数の CommandParameters をバインドする際に追加のヘルプが必要

複数のパラメーター、つまり、前述のトグルボタンの IsChecked プロパティと、文字列、バイト、整数などの定数値を取ることができるトグルボタンのコマンドハンドラーが必要です...問題ありません。

SOでこの素晴らしい質問を見つけ、回答のリンクをたどって、MultiBindingとIMultiValueConverterを読みました。MultiBinding を書かなければならないまではとてもスムーズに進みました。

その後、Kent Boogaart が回答した別の同様の質問に出くわし、これを回避する方法を考え始めました。

考えられる方法の 1 つは、MVVM を使用せず、単に Tag プロパティを ToggleButton に追加することです。この場合、MultiBinding は次のようになります。

Kent は、「MVVM を使用している場合は、この問題を回避できるはずです」というコメントを出しています。ただし、必要な選択の WPF パターンとして MVVM を採用したにもかかわらず、それが私にとっての選択肢であるかどうかはわかりません。

私がこれを言う理由は、UserControl に複数の ToggleButton があり、各 ToggleButton のコマンドが同じ関数を呼び出す必要があるためです。しかし、それらはトグル ボタンであるため、ViewModel で IsChecked にバインドされたプロパティを使用することはできません。これを追跡するために別のプライベート プロパティを追加できると思いますが、少しばかげているようです。定数に関する限り、追跡のアイデアを実行すればおそらくこれを取り除くことができますが、それを回避する他の方法はわかりません.

ここで私に良い提案はありますか?:)

編集- わかりましたので、バインディングを更新する必要がありますが、まだ正しく動作しません:

IsChecked は機能していましたが、Tag は機能していませんでした。Tag が文字列であることに気付きました...当たり前です。それは今働いています!重要なのは、 Selfの RelativeSource を使用することでした。

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

wpf - WPF:MultiValueConverterのConvertBackメソッドで元の値を取得する方法はありますか?

指定されたリストに指定された値が含まれているかどうかをチェックし、含まれている場合は true を返す MultiValueConverter を作成しました。カスタムチェックボックスリストへのバインドに使用します。ここで、ConvertBack メソッドを記述して、チェックボックスがオンになっている場合に元の値がモデルに送信されるようにします。ConvertBack メソッドで値にアクセスする方法はありますか?

XAML:

バインドすると正しい結果が得られますが、元に戻すときにバインドされた ID を取得する方法はありますか? 私が達成したいのは、チェックボックスがチェックされていない場合、値がリストから削除され、チェックされている場合、値がリストに追加されることです。

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

.net - WPF に組み込みの IMultiValueConverts はありますか?

それぞれブール値を返す 2 つのバインディングを含む MultiBinding を作成しています。MultiBindings を使用すると、IMultiValueConverter を指定する必要があります。私の場合、このコンバーターは 2 つのブール値を取り、それらの AND を返す必要があります。これは本当に簡単に書くことができますが、私はしなければなりませんか? これは、最も基本的な MultiValueConverter のように感じます。.NET に既に存在する場合は、書きたくありません。

それで - ありますか?もしそうなら、どの組み込み IMultiValueConverters がありますか?

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

wpf - TextBox.Textの設定に使用すると、IMultiBindingConverterが文字列の配列を取得するのはなぜですか?

子要素にもコンバーターがあるコンバーターでMultiBindingを使用しようとしています。

XAMLは次のようになります。

ここで直面している問題は、これをTextBlockで使用してTextプロパティを指定するたびに、IMultiValueConverter実装が、IValueConverterによって返されるクラスではなく文字列のオブジェクトコレクションを取得することです。ToString()メソッドは、内部コンバーターの結果で呼び出され、IMultiValueConverterに渡されるようです。LabelのContentプロパティを指定するために使用する場合、すべて問題ありません。

フレームワークは戻り型が文字列であると想定しているように見えますが、なぜですか?TextBlock.Textと互換性のある結果が得られるはずなので、MultiBindingでこれを確認できますが、MultiBinding内のBindingsでもこれが当てはまるのはなぜですか?

内部のBinding要素からコンバーターを削除すると、ネイティブタイプが返されます。私の場合、stringとint。

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

wpf - プロパティとMultiConverterを備えたWPFコンバーター?

コンバーター(IValueConverter)を使用して他の値をパラメーター(ConverterParameter)として渡すことと、MultiConverter(IMultiValueConverter)を使用して複数のコンバーター値を渡すことの違いは何ですか?

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

wpf - WPF バインディングに静的文字列を割り当てるこの XAML を圧縮します

私がやりたいことの実用的な使用はないかもしれませんが、私の好奇心を満たすために、次の XAML の 2 番目のバインディングを 1 行に圧縮できますか?

StaticResource One は「1」を返し、MyConverter は取得したすべての値を連結するだけです。私が探しているのは、2 番目のバインディングを 1 番目のバインディングのようなコンパクトな形式で表現する方法です。

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

wpf - マルチバインド 複数選択 ListView

OK、ここに奇妙なものがあります。私が理解しようとしているのは、最初のリストビューの選択に基づいて、ObservableCollection によって取り込まれた 1 つのリストビューを作成し、別の ObservableCollection によって取り込まれた別の ListView を更新し、次に valueconverter を使用して、組み合わせた選択に基づいてチェックボックスをオンまたはオフにする方法です。 2 番目のリストビューに現在のアイテムが表示されます。この部分は、マルチバインディングを使用して多少作業していますが、困惑している部分は、2番目のリストビューでアイテムをチェックまたはチェック解除するときに、そのイベントとそのリストビューで現在チェックされているすべてのアイテムを取得できるようにする必要があることです。それに基づくデータベースフィールド。

私はこれがあまり意味をなさないかもしれないことを知っています. セカンドリストビューのチェックボックスをオンまたはオフにすると、コンバーターが ConvertBack メソッドを実行しようとして失敗することがわかりますが、単に null を返すように設定すると、コードは失敗しなくなりますが、チェックボックスは強調表示されます検証エラーが発生したように赤で。

マルチバインディングがここに行く方法であるかどうかさえわかりません.Josh Smithのマルチセレクションリストビューのものを見てきましたが、必要な変換では、それをうまく実装する方法もわかりません.

誰かが何かアイデアを持っているなら、私はそれを大いに感謝します. また、私の必要性を明確に説明しなかった場合は申し訳ありませんが、混沌とした説明とコードで、私がどこに向かっているのかを確認できることを願っています.

前もって感謝します!

2 番目の ListView にフィードする最初の ListView

コンバーターとマルチバインディングを使用した 2 番目の ListView

値コンバーター

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

wpf - multivalueconverterでデータコンテキストにアクセスできません

特定のDataContextを設定する必要があるユーザーコントロールがあります。ユーザーコントロールはマルチバリューコンバーターを使用します。ただし、multivalueconverterのバインディングはdatacontextを使用できません。通常の値コンバーターでは正常に機能します。誰が何が起こっているのか知っていますか?明確にするために、以下のコードは私の実際のコードとは似ていません。これは私の問題を再現したサンプルにすぎません。たとえば、私のマルチバリューコンバーターは複数の引数を取ります。

XAML:

背後にあるコード: