假设我有一个组合框,其中的项目绑定(bind)到一个字符串数组。我想使用 ItemStringFormat 以大写形式显示这些字符串。我该怎么做?
更新:我对格式化字符串并非一无所知,但我在 MSDN 上搜索了一个格式说明符,可以将字符串转换为大写,但出于某种原因我就是找不到它!我原以为它会是“{0:U}”或“{0:S}”之类的东西。
我也无法相信我无法在 SO 上找到答案。
最佳答案
对不起,这是不可能的。然而,实现您的 DataTemplate
和值转换器很简单。
示例
<UserControl.Resources>
<converters:StringToUpperCaseConverter x:Key="ToUpperConverter"/>
</UserControl.Resources>
<ComboBox ItemsSource={Binding YourCollection}>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text={Binding Path=YourValue, Converter="{StaticResource ToUpperConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox>
转换器
public class StringToUpperCaseConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((string)value).ToUpper();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
}
}
在 Internet 和任何 WPF 书籍中都有大量关于这两个主题的信息。
关于c# - 如何在 WPF 中使用 ItemStringFormat 大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949308/