我有一个组合框,它通过转换器绑定到双打集合,该转换器仅用于从关联属性的名称中定位集合。组合框位于属性网格编辑器的 DataTemplate 中。问题是组合框不显示当前系统文化中的值(即使用“,”作为小数分隔符,而不是“。”)。属性网格中的所有其他属性都正确显示(例如在文本框中)。
DataTemplate 看起来像这样,而 ListComboBoxValuesConverter 只返回一个双精度集合。
<ComboBox
ItemsSource="{Binding Converter={StaticResource ListComboBoxValuesConverter},
RelativeSource={RelativeSource AncestorType={x:Type propgrid:IPropertyDataAccessor}}}"
Text="{Binding Path=Value,
RelativeSource={RelativeSource AncestorType={x:Type propgrid:IPropertyDataAccessor}},
Mode=TwoWay,
ValidatesOnExceptions=True, ValidatesOnDataErrors=True, NotifyOnValidationError=True}">
</ComboBox>
谢谢
编辑:
我想出的解决方案是为组合框设置项目模板并使用转换器将值作为格式正确的字符串返回。感觉这应该是不必要的,但你去吧!
<ComboBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Converter={StaticResource FloatValueCultureConverter}, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>