我在做一個WPF應用程序,我需要一個具有多於一個綁定路徑的值轉換器,這可能嗎?WPF值轉換器
它的工作原理與1路至今:
Binding="{Binding Path=Price, Converter={StaticResource vPriceConvertor}}"
我想給Price
和discount
到轉換器這樣他就可以計算出endprice
。
我在做一個WPF應用程序,我需要一個具有多於一個綁定路徑的值轉換器,這可能嗎?WPF值轉換器
它的工作原理與1路至今:
Binding="{Binding Path=Price, Converter={StaticResource vPriceConvertor}}"
我想給Price
和discount
到轉換器這樣他就可以計算出endprice
。
價值轉換器旨在...價值轉換。這就是爲什麼他們的價值轉換器。
要做你想做的事,你應該在視圖模型中製作一個屬性EndPrice
,並在視圖模型中計算它的值。你爲什麼試圖將非UI邏輯帶入UI?
優秀點。 – code4life
我認爲最好是每次計算endprice,但在視圖模型中添加屬性似乎是最好的想法,thx。 –
看看MultiBinding這個類。例如:
<TextBlock Name="textBlock" DataContext="{StaticResource myViewModel}">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource vPriceConvertor}"
ConverterParameter="myParameter">
<Binding Path="Price"/>
<Binding Path="Discount"/>
<!-- Insert other paths here -->
</MultiBinding>
</TextBlock.Text>
</TextBlock>
實施IMultiValueConverter代替的IValueConverter實際上做轉換,因爲它支持多種來源。
這就是做到這一點的方法! – code4life
帕雷斯 -
你總是可以創建一個集合,(在視圖模型),其中包含價格和折扣,然後通過你的XAML(可通過的IValueConverter)通過。
但重新迭代@Dennis和其他人指出 - 那麼你的轉換器將有計算邏輯 - 這是不推薦。
除了@丹尼斯的觀點,您正在將業務邏輯擴展到用戶界面層...這是一個反模式... – code4life