問題タブ [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.
wpf - アイテムのリストにIMultiValueConverterを使用することは可能ですか?
EmployeeオブジェクトのobservableCollectionとしてEmployeeListがあります。
EmployeeオブジェクトにはSalaryがあります。
XAMLで従業員の平均給与などのいくつかの値を表示したいのですが、アイテムがリストに追加されたとき、または更新されたアイテムのいずれかで給与フィールドが変更されたときに、UIフィールドが自動的に更新されます。
これは、平均のプロパティを作成し、リスト内のコレクションChangedおよびProperyChangedハンドラーをリッスンすることで実現できます。
しかし、私はこれを行うための他のより良い方法があるはずだと確信しています。(AttachedPropertiesまたはIValueConverter / IMultiValueConverterを使用する場合と同様)
これに関して、私は以下の質問があります。
- アイテムのリスト/ObservableCollectionにIMultiValueConverterを使用することは可能ですか?アイテムがリストに追加されたとき、および特定のプロパティが変更されたときに、コンバーターを呼び出す必要がありますか?
wpf - DataTrigger がコンバーターに入らない
これはxamlです:
これは window1 の分離コードです。
}
wpf - MenuItem が指定されたパラメータを送信しないのに、Button が送信する理由
ボタン コマンドは MenuItem とまったく同じです。MenuItem の Converter をデバッグすると、values パラメータには 2 つのオブジェクトが含まれます。
また、パラメータとして SomeType を渡すにはどうすればよいですか? ありがとう
wpf - IMultiValueConverter の ValueConversion 属性を設定する方法
コンバーターを IValueConverter から IMultiValueConverter に変更しました: 以前は int を string に変換しました:
しかし、今は int と double を文字列に変換しています。
ValueConversion 属性を今どのように指定すればよいですか? 現在、2 つの入力と 1 つの出力があります。
c# - C#/WPF-DataGrid-タイムアウト後に要素の色を更新
現在、次の方法を使用して、行の背景の色を設定しています。
XAML
C#
問題は、このコンバーターが新しい値を持つDataRowのポピュレーションでのみ呼び出されることです。私が本当に必要としているのは、一定時間後に色を変更したり、コンバーターを定期的に再評価したりするための、ある種のコールバックです。
色の更新は、数秒以内に瞬時に行う必要はありません。各行にコールバックがある場合、一致するスレッドの数が必要になります(スレッドは作成されるため、異なる時間に期限切れになります(色が変わります))。最大1000行の場合、これは効率的なオプションとは思えません。
もう1つのオプションは、1つのスレッドの行を定期的にポーリングし、反復ごとに(5秒ごとに?)コンバーターを再評価することです。これがおそらく進むべき道だと思いますが、WPFでそれをどうやって進めるのかわかりません。
おそらく、そのようなタスクに対する別のアプローチまたは組み込みのサポートがありますか?
前もって感謝します!
wpf - IMultiValueConverter + 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私はコンバーターにかなり慣れていません。私は最近それをいじり始めたばかりです。
wpf - マルチバインディング。ソースに正しい値を更新する方法は?
私の問題は次のとおりです。
データセット内の 3 つのフィールドにバインドされた 3 つのテキスト ボックスがあります。TextBox_Rate、TextBox_Hours、TextBox_Salary。
私が必要としていたのは、TextBox_Rate + TextBox_Hoursを = TextBox_Salaryにすることでした。
これは、 MultibindingとConverterを使用することで実現できることがわかりました。
マルチバインディングは次のようになります。
そしてコンバーター:
クラス終了
これはすべて100%機能します。私は私が望む結果を得ています。しかし、ここでも問題が発生します...
TextBox_Rateは Dataset フィールドRateにバインドされ、TextBox_Hoursは Dataset フィールドHoursにバインドされ、元々 (マルチバインディングの前) TextBox_Salaryは Dataset フィールドSalaryにバインドされていましたが、 TextBox_Rate AND TextBox_Hoursにバインドされていません。また、Multibinding から生成された値は、ソース フィールド "Salary" にバインドされていないため、更新されません。
そのフィールドを更新するようにバインディングを設定するにはどうすればよいですか?
前もって感謝します。
wpf - IMultiValueConverter ConvertBack の問題
私は wpf + mvvm を使用しており、条件付きコンバーターを実装しようとしています。これが私がxamlでやっていることです:
そしてマルチコンバーター:
だから私がやりたいことは、ユーザーがいるページの種類に基づいて、viewController にあるさまざまなモデルにページ上の要素を条件付きでバインドすることです。
コンバートバックのために何をする必要がありますか? 戻り配列のどの要素に値が属しているかを知る方法がわかりません。何か案は?
wpf - Convert 関数は常に 1 つの値を持ちます DependencyProperty.UnsetValue - WPF
私はWPFが初めてです。私のアプリケーションでは、別の列と TextBox に基づいて datagrid 列を計算しようとしています。2つを掛けて結果を出す必要があります。同じために、IMultiValueConverter を使用しています。私は DataGrid にいます Bindings は次のとおりです。
問題は私の要素バインディングです。要素名は完全に正しいですが、実装したクラスでは常に DependencyProperty.UnsetValue として値を取ります。何が問題ですか???何か案が。
コンバーター機能は次のとおりです。
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 つの質問があります。
NamedObject
単一値バインディングが正常に機能する場合、MultiBindingConverter の値はどのようになりますかそれほど重要ではない質問は、TabItem のコンテンツを変更したときにバインドが呼び出される理由です (これらのコンバーターは UserControl.Unloaded の前に呼び出されていることに注意してください)。
ありがとう、デイブ