ComboBox.SelectionBoxItemStringFormat未正确设置

时间:2011-05-11 18:00:54

标签: wpf combobox

我使用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。我做错了什么?

2 个答案:

答案 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,所选项目将以正确的格式显示。对我来说这些设置也很好。