如何在WPF中使用ItemStringFormat大写?

Kev*_*Hsu 2 c# wpf

假设我有一个组合框,其中项目绑定到一个字符串数组.我想使用ItemStringFormat以大写形式显示这些字符串.我怎么做?

更新:我对格式化字符串并不是完全无能为力,但我在MSDN上搜索了一个格式说明符,它将字符串转换为大写,但由于某种原因我找不到它!我原以为它会像"{0:U}"或"{0:S}"之类的东西.

我也无法相信我无法在这里找到答案.

Den*_*nis 6

对不起,这是不可能的.然而,实现你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>
Run Code Online (Sandbox Code Playgroud)

变流器

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)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

在互联网和任何 WPF书籍中,有很多关于这两个主题的信息.