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

wpf - アイテムのリストにIMultiValueConverterを使用することは可能ですか?

EmployeeオブジェクトのobservableCollectionとしてEmployeeListがあります。

EmployeeオブジェクトにはSalaryがあります。

XAMLで従業員の平均給与などのいくつかの値を表示したいのですが、アイテムがリストに追加されたとき、または更新されたアイテムのいずれかで給与フィールドが変更されたときに、UIフィールドが自動的に更新されます。

これは、平均のプロパティを作成し、リスト内のコレクションChangedおよびProperyChangedハンドラーをリッスンすることで実現できます。

しかし、私はこれを行うための他のより良い方法があるはずだと確信しています。(AttachedPropertiesまたはIValueConverter / IMultiValueConverterを使用する場合と同様)

これに関して、私は以下の質問があります。

  1. アイテムのリスト/ObservableCollectionにIMultiValueConverterを使用することは可能ですか?アイテムがリストに追加されたとき、および特定のプロパティが変更されたときに、コンバーターを呼び出す必要がありますか?
0 投票する
1 に答える
487 参照

wpf - DataTrigger がコンバーターに入らない

これはxamlです:

これは window1 の分離コードです。

}

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

wpf - MenuItem が指定されたパラメータを送信しないのに、Button が送信する理由

ボタン コマンドは MenuItem とまったく同じです。MenuItem の Converter をデバッグすると、values パラメータには 2 つのオブジェクトが含まれます。

また、パラメータとして SomeType を渡すにはどうすればよいですか? ありがとう

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

wpf - IMul​​tiValueConverter の ValueConversion 属性を設定する方法

コンバーターを IValueConverter から IMultiValueConverter に変更しました: 以前は int を string に変換しました:

しかし、今は int と double を文字列に変換しています。

ValueConversion 属性を今どのように指定すればよいですか? 現在、2 つの入力と 1 つの出力があります。

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

c# - C#/WPF-DataGrid-タイムアウト後に要素の色を更新

現在、次の方法を使用して、行の背景の色を設定しています。

XAML

C#

問題は、このコンバーターが新しい値を持つDataRowのポピュレーションでのみ呼び出されることです。私が本当に必要としているのは、一定時間後に色を変更したり、コンバーターを定期的に再評価したりするための、ある種のコールバックです。

色の更新は、数秒以内に瞬時に行う必要はありません。各行にコールバックがある場合、一致するスレッドの数が必要になります(スレッドは作成されるため、異なる時間に期限切れになります(色が変わります))。最大1000行の場合、これは効率的なオプションとは思えません。

もう1つのオプションは、1つのスレッドの行を定期的にポーリングし、反復ごとに(5秒ごとに?)コンバーターを再評価することです。これがおそらく進むべき道だと思いますが、WPFでそれをどうやって進めるのかわかりません。

おそらく、そのようなタスクに対する別のアプローチまたは組み込みのサポートがありますか?

前もって感謝します!

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

wpf - IMul​​tiValueConverter + MultiBinding-データバインドされた値の逆算術計算?

奇妙なタイトルの謝罪。私はそれを他に置く方法を知りませんでした。

私が持っているのは3つのTextBoxesデータです-いくつかの値にバインドされています。

私がする必要があるのは、他の2つのテキストボックスの計算の結果として自動的に計算されるTextBoxの1つの値を持つことです。

いくつかのグーグルの後で、私はIMultiValueConverterインターフェースを使用することが私の問題を解決するはずであることに気づきました。します。しかし、1つの方法だけです。

例えば:

TextBox 1 * TextBox 2 = TextBox 3

しかし、その逆も当てはまります。

TextBox 3 / TextBox 2 = TextBox 1

後者は私が完了するのに苦労しているものです。私が何をしても、逆の計算は固執しません。

それぞれ2つのTextBoxに2つのIMultiValueConvertersを実装しました(2つの異なる計算のため)。

コンバーター1:

エンドクラス

コンバーター2:

エンドクラス

ConvertBackメソッドの戻り値がNothingに設定されていることがわかります。これは、valueパラメータを返すたびに、文字列から1次元配列に変換できないという例外が発生するためです。

私は何が間違っているのですか?

どんな助けでも大歓迎です。

前もって感謝します。

PS私はコンバーターにかなり慣れていません。私は最近それをいじり始めたばかりです。

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

wpf - マルチバインディング。ソースに正しい値を更新する方法は?

私の問題は次のとおりです。

データセット内の 3 つのフィールドにバインドされた 3 つのテキスト ボックスがあります。TextBox_RateTextBox_HoursTextBox_Salary

私が必要としていたのは、TextBox_Rate + TextBox_Hoursを = TextBox_Salaryにすることでした。

これは、 MultibindingConverterを使用することで実現できることがわかりました。

マルチバインディングは次のようになります。

そしてコンバーター:

クラス終了

これはすべて100%機能します。私は私が望む結果を得ています。しかし、ここでも問題が発生します...

TextBox_Rateは Dataset フィールドRateにバインドされ、TextBox_Hoursは Dataset フィールドHoursにバインドされ、元々 (マルチバインディングの前) TextBox_Salaryは Dataset フィールドSalaryにバインドされていましたが、 TextBox_Rate AND TextBox_Hoursにバインドされていません。また、Multibinding から生成された値は、ソース フィールド "Salary" にバインドされていないため、更新されません。

そのフィールドを更新するようにバインディングを設定するにはどうすればよいですか?

前もって感謝します。

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

wpf - IMul​​tiValueConverter ConvertBack の問題

私は wpf + mvvm を使用しており、条件付きコンバーターを実装しようとしています。これが私がxamlでやっていることです:

そしてマルチコンバーター:

だから私がやりたいことは、ユーザーがいるページの種類に基づいて、viewController にあるさまざまなモデルにページ上の要素を条件付きでバインドすることです。

コンバートバックのために何をする必要がありますか? 戻り配列のどの要素に値が属しているかを知る方法がわかりません。何か案は?

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

wpf - Convert 関数は常に 1 つの値を持ちます DependencyProperty.UnsetValue - WPF

私はWPFが初めてです。私のアプリケーションでは、別の列と TextBox に基づいて datagrid 列を計算しようとしています。2つを掛けて結果を出す必要があります。同じために、IMultiValueConverter を使用しています。私は DataGrid にいます Bindings は次のとおりです。

問題は私の要素バインディングです。要素名は完全に正しいですが、実装したクラスでは常に DependencyProperty.UnsetValue として値を取ります。何が問題ですか???何か案が。

コンバーター機能は次のとおりです。

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

wpf - WPF 3.5: MultiValueConverter 値は NamedObject であり、単一の ValueConverters は通常どおりに機能します

修正しようとすればするほど、.NET のバグのように感じられる MultiValueConverter に問題があります。ここに何が起きているかです:

同様の MultiBinding 定義を使用して、Stackpanel とユーザー コントロール (UC) の両方の IsEnabled プロパティをバインドしています (もちろん、<ns:usercontrolname.IsEnabled>UC に使用しています)。

「現在の」UC (この XAML を含むもの) が TabItem.Content に割り当てられています。DataContext は TabItem で設定されます。

また、同じ「現在の」UC の 2 つの個別の単一値バインディングで上記のプロパティを使用しています。

「現在の」UC が最初にインスタンス化され、TabItem のコンテンツに割り当てられると、すべてのバインディングが正常に機能します。しかし、TabItem のコンテンツを (インスタンス化された「現在の」UC を破棄せずに) 別の UC に変更するとすぐに、すべてのコンバーターが再度呼び出され、MultiValueConverter のvalues()パラメーターにNamedObject両方の全体が含まれます。まったく同じプロパティを使用する単一値コンバーターは正常に動作します。

私はこれを理解することはできません。MultiBindings で RelativeSource を使用してみましたが、役に立ちませんでした。

2 つの質問があります。

  1. NamedObject単一値バインディングが正常に機能する場合、MultiBindingConverter の値はどのようになりますか

  2. それほど重要ではない質問は、TabItem のコンテンツを変更したときにバインドが呼び出される理由です (これらのコンバーターは UserControl.Unloaded の前に呼び出されていることに注意してください)。

ありがとう、デイブ