奇妙なタイトルの謝罪。私はそれを他に置く方法を知りませんでした。
私が持っているのは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:
Public Class SalaryConverter
Implements IMultiValueConverter
Public Function Convert(ByVal values() As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IMultiValueConverter.Convert
Dim salary As Double = 0
salary = (Math.Round(values(0) * (values(1) * 4)))
Return salary.ToString("C")
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetTypes() As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object() Implements System.Windows.Data.IMultiValueConverter.ConvertBack
Return Nothing
End Function
エンドクラス
コンバーター2:
Public Class RateConverter
Implements IMultiValueConverter
Public Function Convert(ByVal values() As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IMultiValueConverter.Convert
Dim rate As Double = 0
rate = ((values(0) / values(1)) / 4)
Return rate.ToString("C")
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetTypes() As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object() Implements System.Windows.Data.IMultiValueConverter.ConvertBack
Return Nothing
End Function
エンドクラス
ConvertBackメソッドの戻り値がNothingに設定されていることがわかります。これは、valueパラメータを返すたびに、文字列から1次元配列に変換できないという例外が発生するためです。
私は何が間違っているのですか?
どんな助けでも大歓迎です。
前もって感謝します。
PS私はコンバーターにかなり慣れていません。私は最近それをいじり始めたばかりです。