奇怪的標題apollogies。我不知道該怎麼說。IMultiValueConverter + MultiBinding - 對數據綁定值進行反向算術計算?
我有什麼是3文本框數據綁定到一些值。
我需要做的是將TextBoxes的值作爲其他2個文本框的計算結果自動計算。
Google'ing後,我發現使用IMultiValueConverter接口應該可以解決我的問題。它的確如此。但只有一種方法。
例如:
文本框1 *文本框2 =文本框3
但反過來也是如此:
文本框3 /文本框2 =文本框1
後者是什麼我在完成時遇到問題。無論我做什麼,反向計算都不會堅持下去。
我已經實現了2個IMultiValueConverters,每個爲2個文本框(因爲它有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方法的返回值被設置到無。這是因爲每當我返回值參數,我得到一個異常說,我不能從字符串轉換爲1維數組。
我在做什麼錯了?
任何幫助,非常感謝。
在此先感謝。
P.S.我對轉換器相當陌生。我最近纔開始玩這個遊戲。
好吧我怎麼解釋這個...它的作品! 100%。但它很奇怪。當調用ConvertBack時,它從TextBox 3中取值並將其分配給TextBox 1.在擺弄了一下之後,我想也許我可以利用它來獲得我的優勢。所以我然後從我創建的另一個轉換器的代碼塊,並以某種方式與第一個轉換器的ConvertBack方法實現它。現在當TextBox 1,TextBox 2或TextBox 3的值發生變化時,就會進行正確的計算。非常感謝您的幫助。 – GaaTY