2011-05-11 10 views
0

Choices을 % 값으로 표시하는 ComboBox를 사용하고 있습니다.ComboBox.SelectionBoxItemStringFormat이 올바르게 설정되지 않았습니다.

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

선택 항목이 백분율 기호와 함께 올바르게 표시됩니다. 그러나 SelectedItem은 백분율 기호가없는 일반 float 값으로 표시됩니다 (따라서 잘못된 형식으로 표시됨).

ItemTemplate도 같은 동작을합니다. 런타임시이 값이 null이므로 ComboBox.SelectionBoxItemStringFormat 속성이 올바르게 설정되지 않은 것으로 보입니다. 그러나이 속성은 readonly입니다. 나는 무엇을 잘못 했는가?

답변

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

도움 주셔서 감사합니다. 그러나 ItemTemplate을 설정하면 동일한 동작이 발생합니다. 선택한 항목이 형식없이 표시됩니다. 다른 생각? – Joerg

1

내가 선택한 항목이 올바른 형식에 표시됩니다 IsEditable="True" IsReadOnly="True" 설정없이 콤보 상자를 사용하는 것을 알아 냈다. 나를 위해 이러한 설정도 괜찮습니다.

관련 문제