Silverlight 4.0 仅由DataFormatString指定的第一个字母

Silverlight 4.0 仅由DataFormatString指定的第一个字母,silverlight-4.0,telerik-grid,dataformat,Silverlight 4.0,Telerik Grid,Dataformat,绑定枚举时,我有一个列: <telerik:GridViewComboBoxColumn Header="N/U" DataMemberBinding="{Binding VehicleCondition}" ItemsSourceBinding="{Binding Source={StaticResource Locator}, Path=CarSalon.VehicleConditions}" IsGroupable="False" DataFormatString="" />

绑定枚举时,我有一个列:

<telerik:GridViewComboBoxColumn Header="N/U" DataMemberBinding="{Binding VehicleCondition}" ItemsSourceBinding="{Binding Source={StaticResource Locator}, Path=CarSalon.VehicleConditions}" IsGroupable="False" DataFormatString="" />

如何按DataFormatString仅显示第一个字母


或者是没有DataFormatString的另一个解决方案?

在本例中,您希望实现一个类似以下内容的
值转换器(使用LINQ字符串扩展):

显然,如果您的输入值(
VehicleCondition
)不是字符串,则需要执行更复杂的操作

您的XAML将变成这样:

<telerik:GridViewComboBoxColumn Header="N/U" DataMemberBinding="{Binding VehicleCondition, Converter={StaticResource initialLetterConverter}}" ...
它将绑定到对象。然后,您的转换器会变成:

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    var carSalon = (CarSalon)value;
    string result = string.Empty;

    if (carSalon != null && <whatever else you need to test>)
    {
        result = temp.VehicleCondition.First().ToString();
    }

    return result;
}
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性) { var carSalon=(carSalon)值; 字符串结果=string.Empty; if(carSalon!=null&&) { 结果=温度车辆条件。第一个()到字符串(); } 返回结果; }

您可以在其中对对象执行任何检查或获取所需对象的其他属性。

它不起作用,因为它只转换DataMemberBinding,然后无法将其与ItemsSourceBinding匹配:/
<telerik:GridViewComboBoxColumn Header="N/U" DataMemberBinding="{Binding, Converter={StaticResource initialLetterConverter}}" ...
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    var carSalon = (CarSalon)value;
    string result = string.Empty;

    if (carSalon != null && <whatever else you need to test>)
    {
        result = temp.VehicleCondition.First().ToString();
    }

    return result;
}