我使用ComboBox
显示浮点数(在Choices
中)作为百分比值:
<ComboBox
ItemStringFormat="P0"
IsEditable="True"
IsReadOnly="True"
SelectedItem="{Binding SelectedObject.PrePlanningStatus, Mode=TwoWay, ValidatesOnDataErrors=True, StringFormat=P0}"
ItemsSource="{Binding Choices}" />
使用百分号符号正确显示选项。但是,SelectedItem
显示为普通浮点值而没有百分号(因此格式错误)。
ItemTemplate
具有相同的行为。似乎ComboBox.SelectionBoxItemStringFormat
属性未正确设置,因为此值在运行时为null。但是,此属性为readonly
。我做错了什么?
答案 0 :(得分:1)
您可以使用DataTemplate
指定项目以通用方式显示的方式:
<ComboBox IsEditable="True" IsReadOnly="True" SelectedItem="{Binding SelectedObject.CavernDetails.PrePlanningStatus, Mode=TwoWay, ValidatesOnDataErrors=True}" ItemsSource="{Binding Choices}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding StringFormat=P0}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
答案 1 :(得分:1)
我发现使用没有IsEditable="True" IsReadOnly="True"
设置的ComboBox,所选项目将以正确的格式显示。对我来说这些设置也很好。