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;
}