Combobox 항목에 대한 통화 형식
-
08-07-2019 - |
문제
나는 소수의 수집에 대한 combobox를 가지고 있습니다. 통화 변환기를 항목에 적용하는 올바른 방법은 무엇입니까?
편집하다:
a) 사용해야하는 기존 통화 변환기가 있습니다. 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를 구현하고 코드를 호출하여 주어진 금액을 형식화 된 문자열로 바꿉니다.
다른 팁
Combobox의 itemstringformat 속성을 사용하여 각 항목을 포맷하는 방법을 알려줄 수 있습니다.
<ComboBox ItemStringFormat="c">
그러나 "C"를 통화 형식으로 사용하면 로컬 컴퓨터에서 정의한 통화를 사용합니다. 귀하의 값이 $에 정의되어 있지만 클라이언트 PC가 파운드 또는 엔으로 통화 기호로 실행중인 경우, 원하는 것을 보지 못합니다.
사용 StringFormat 바인딩 발현에서
<TextBox Text="{Binding Path=Value, StringFormat=Amount: {0:C}}"/>
이것 좀 봐 자세한 내용은 블로그.
ㅏ ValueConverter 또 다른 방법입니다 - StringFormat은 .NET3.0에서 작동하지 않습니다. WPF3.5 SP1이 필요합니다.
제휴하지 않습니다 StackOverflow