2011-05-11 3 views
0

J'utilise un affichage ComboBox flotteurs (en Choices) comme valeurs de pourcentage:ComboBox.SelectionBoxItemStringFormat définit pas correctement

<ComboBox 
    ItemStringFormat="P0" 
    IsEditable="True" 
    IsReadOnly="True" 
    SelectedItem="{Binding SelectedObject.PrePlanningStatus, Mode=TwoWay, ValidatesOnDataErrors=True, StringFormat=P0}" 
    ItemsSource="{Binding Choices}" /> 

Les choix sont correctement affichés avec le symbole pour cent. Cependant, le SelectedItem est affiché en tant que valeur flottante normale sans symbole de pourcentage (donc avec un format incorrect).

ItemTemplate a le même comportement. Il semble que la propriété ComboBox.SelectionBoxItemStringFormat n'est pas définie correctement car cette valeur est null au moment de l'exécution. Cependant, cette propriété est readonly. Qu'est ce que j'ai mal fait?

Répondre

1

Vous pouvez utiliser un DataTemplate pour indiquer comment les éléments sont affichés d'une manière universelle:

<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> 
+0

Merci de votre aide. Cependant, définir un ItemTemplate a le même comportement. L'élément sélectionné est affiché sans aucun format. Une autre idée? – Joerg

1

Je trouve que l'aide d'un ComboBox sans IsEditable="True" IsReadOnly="True" paramètres de l'élément sélectionné est affiché dans le format correct. Pour moi, ces paramètres sont également très bien.

Questions connexes