我有一個組合框綁定到小數點的ObservableCollection。將貨幣換算器應用於物品的正確方法是什麼?組合框項目上的貨幣格式
編輯:
一)我有,我必須使用 b。將現有的貨幣轉換器).NET 3.0
我是否需要模板的項目?
我有一個組合框綁定到小數點的ObservableCollection。將貨幣換算器應用於物品的正確方法是什麼?組合框項目上的貨幣格式
編輯:
一)我有,我必須使用 b。將現有的貨幣轉換器).NET 3.0
我是否需要模板的項目?
如果你有一些代碼做轉換的確是通過一個模板通過一個IValueConverter來運行每個項目,你最好打賭。
<Window.Resources>
<my:CurrencyConverter x:Key="currencyConverter" />
<DataTemplate x:Key="thingTemplate" DataType="{x:Type my:Thing}">
<TextBlock
Text="{Binding Amount,Converter={StaticResource currencyConverter}}" />
</DataTemplate>
</Window.Resources>
<ComboBox
ItemSource="... some list of Thing instances ..."
ItemTemplate="{StaticResource thingTemplate}" />
所以你剛纔定義CurrencyConverter類,使得它實現的IValueConverter並調用你的代碼把給定的量成格式化字符串。
使用的StringFormat在綁定表達式像
<TextBox Text="{Binding Path=Value, StringFormat=Amount: {0:C}}"/>
一個ValueConverter是另一種方式 - 在.NET3.0的StringFormat不工作,它需要WPF3.5 SP1。
您可以使用組合框的ItemStringFormat屬性來告訴它如何它的每個項目的格式爲:
<ComboBox ItemStringFormat="c">
但是,要知道,當使用「C」作爲一種貨幣格式,它將使用貨幣由本地機器定義。如果您的數值是以$爲單位定義的,但您的客戶端電腦以英鎊或日元作爲貨幣符號運行,他們將不會看到您希望他們看到的內容。
我們有一個特定的貨幣轉換器,我們需要使用它。不過謝謝。 – Donnelle 2008-11-17 03:45:51