問題タブ [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 に答える
3102 参照

.net - IMul​​tiValueConverter を使用して複数の CommandParameter を viewModel に渡す

次のコードがあります。

以下は PassThroughConverter のコードです。

戻り値の行にヒットするとすぐにデバッグすると、正しい値が配列にありますが、filtergrid コマンドをトリガーするボタンを押すと、返される値は両方とも null ですか? 誰でも助けることができます。ありがとうございました。

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

wpf - 2 つのコントロールを 1 つのフィールドにバインドし、ConvertBack の 2 つのコントロール値にアクセスするにはどうすればよいですか?

DataGridTemplateColumn DataTemplate で、2 つのコントロールを "[name]:[value]" 形式の文字列フィールドにバインドします。つまり、文字列はコロン ":" で区切られます。コントロール a) を [name] 部分にバインドし、コントロール b) を値部分にバインドする必要があります。

IValueConverter を使用して文字列を分割して表示することに成功しました。

そしてXAML:

しかし、データは Textboxes で編集される可能性があるため、ConvertBack で 2 つの TextBox 値にアクセスして再度結合できるようにするにはどうすればよいですか?

0 投票する
3 に答える
1633 参照

c# - 親参照を渡すコマンドパラメータ

WPFツリービューがあり、子ノードコンテキストで親ノードの参照が必要です。メニューコマンド。以下のXAMLでは、メンバーコマンドパラメーターでAの参照を渡す必要があります

XAML:

コンバータ:

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

textbox - MultiBinding を使用してフォーカスされたときに TextBox の異なる形式がソースを更新しない

私がやりたいことは簡単です。TextBox にフォーカスがある場合は 1 つの書式を表示し、フォーカスがない場合は別の書式を表示します。私の場合、フォーカスされていないときは数値を 3 桁に丸めていますが、編集のためにフォーカスされているときは実際の数値全体を表示しています。

マルチバインディングを使用したかなり単純なソリューションがあり、ほとんどそこにいるような気がします。すべてが期待どおりに機能し、即時ウィンドウにエラーはありませんが、バインディングはソースを更新しません。

このスタイルを使用してバインディングを渡し、TextBox にフォーカスがあるかどうかをコンバーターに渡します。

使用例:

そして多値コンバーターはこちら。

0 投票する
3 に答える
808 参照

c# - TextBox:doubleにバインドされ、IMultiValueConverterを介して変換されます:ViewModelで値が変更されても更新されません

Caliburn.Microを使用しています。

私のビューには、ViewModelのXの値を変更TextBoxするBindedtodouble Xとaがあります。Button

私の目標は、表示される小数点以下の桁数を制限することです。この番号は、アプリケーションで構成可能であるため、AnObjectのプロパティとして使用できます。したがって、私はIMultiValueConverter:を定義しました

そして私のTextBoxを次のように定義しました:

機能: Xの初期値であるゼロは正しくフォーマットされています。

動作しないもの:ボタンが押されたときに、新しい値がテキストボックスに表示されていません。

IMul​​tiValueConverterを使用しない提案も歓迎します。

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

c# - IMul​​tiValueConverter を使用して DataGridColumn にバインドすると問題が発生するが、同様の IValueConverter を使用すると問題が発生する

それぞれバインディングを持つ 2 つの Datagrid チェックボックス列があります。

バインディングは、ボックスがチェックされた日時を単に db フィールドに書き込み、チェックされてい"Required"ない場合は null を書き込みます。

最初のチェックボックスでは、次のコンバーターですべてがうまく機能します。

最後の列では、日付と時刻を 2 つの異なるフィールド"Required_Date""Required_Time" (String). それを処理するために、次のものIMultiConverterが作成されました。

初期ロードでは、列は良好に見えます。列には、該当するすべてのセルがチェックされています。ただし、値をチェック/チェック解除すると、次のバインディング エラーが発生します。

さらに、セルのチェックを外すと、セルのチェックが正しく解除されず、コンバーターのいくつかのブレークポイントから、値が次のように入力されていることに気付きますDependencyProperty.Unset(おそらくバインド警告が原因です)。

(9-30-12)

コードプレックスのコメントで、より有望なリードを見つけました。

「MultiBindings が機能しない理由は、DataGridHelper.UpdateSource が GetBindingExpressionBase ではなく GetBindingExpression を使用しているためです。これを変更すると、複数の優先バインディングが機能するはずです。」

更新を設定して更新を呼び出すイベントをExplicit作成しようとしましたが、DataGridColumn が更新オプションを無視していると思います。DataGrid_EndCellEditBindingBaseExpression

(10-12-12)

それでも運が悪いので、うまくBindingBaseExpressionいかなかった。明らかに、IMultiValueCOnverterバインディングは奇妙なことをしています。

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

c# - IMul​​tiValueConverterにGUIDを渡す

telerik:RadMenuItemのvisibilityプロパティをバインドするマルチバリューコンバーターを作成しました。この右クリックメニューは、Telerikカレンダーコントロールに移動する予定の中にあります。ControlID(使用しているフレームワークからアタッチされたプロパティ)を、パラメーターとして作成したIMultiValueConverterに渡します。そこで、Guid(コンバーターのオブジェクト配列の2番目の値として入力される)を渡し、それをキャストして値を取得し、評価を実行できるようにします。WPFは私の強みではなく、多くのことを試した後、バインディングを接続できないようです。

ControlIDの内容をマルチバリューコンバーターに正常に渡すために、2番目のBindingタグに何が欠けていますか?ありがとう!

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

wpf - マルチバインディングConvertBackの問題

別のプロジェクトで発生している問題を解決しようとすると、問題を再現するために次の例を作成しました。

ユーザーがスライダーまたはテキストボックスを介して新しい値を入力すると、それらの値はコンバーターを介して「ConvertedBack」になり、ソースが更新されるという考え方です。InternalRepのプロパティが書き込まれているが、InternalRepPropertyのbindexpressionに通知していないため、これは表示されていないようです。

この問題を解決するための最善の方法は何ですか?

私が試した1つの方法は、スライダーのValueChangedイベントを処理することでしたが、これにより、コンバーターが... ConvertBack Convert ConvertBack Convertの順になりました。理由はわかりません。

ユーザーが値を変更するとき、ソースを更新するためにConvertBackのみを使用するコンバーターが必要ですが、他には何も必要ありません。これは可能ですか?

TextSplitter XAML

TextSplitter C#

MainWindow XAML

メインウィンドウコード

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

wpf - MultiConverter を使用したマルチバインドにより、DependencyProperty.UnsetValue が生成されます

のリストがありMyItemます。このオブジェクトは、幅、高さ、色などのプロパティを持つ形状を表します。Alphaコンバーターを使用して、オブジェクトが選択されている場合 (不透明度を変更したくない場合) 、塗りつぶしの色を (255, r, g, b) から ( , r, g, b) に変更しようとしています。Alpha(double) ビューモデル内に存在します。

DependencyProperty.UnsetValue私の問題は、私が何を与えても、コンバーターに送信される両方の値が に設定されることです。のみを指定Pathすると、ビューモデルにバインドされると予想されますが、そうではありません。明らかに、私はここで何か間違ったことをしています。

Q:Alphaビューモデルのと DataContext のが必要MyItemColorですmyitem(MultiBinding ブロック内では DataContext のままだと思います)。Bindingタグはどのように表示されますか?

XAML

コンバータ

アップデート

私はそれを解決しました。ビューモデルにアクセスするには、親コントロール (アイテムを含む) を探す必要がありました。これの明確化、なぜそれが良い/悪いのか、答えとして十分です! 何が起こっているのか完全には理解できません:)

と...

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

c# - WPF のアイテムのコレクションに対する可視性

ドロップダウンとグリッドがあります。グリッド列にハイパーリンクがあります。ドロップダウン コレクションに 1 つの項目が含まれている場合、ドロップダウンは非表示にする必要があります。つまり、項目のコレクションに対して可視性をバインドするロジックが必要です。

GRid 内の 1 つのハイパーリンクの XAML を次に示します。