在自动生成的Telerik RadGridView指定单元格(Silverlight)中应用DataFormatStri

本文关键字:Silverlight DataFormatStri 应用 单元格 自动生成 Telerik RadGridView | 更新日期: 2023-09-27 18:20:08

我有一个列,它与自动生成的Telerik RadGridView中类型为double的属性绑定。

<telerik:GridViewDataColumn
         Header="Formated Price" DataFormatString="0.###E0"
         DataMemberBinding="{Binding Price, Mode=TwoWay}">
</telerik:GridViewDataColumn>

我想要多个DataFormatString w.r.t单元格。

例如:如果单元格中的值大于5,则"指数值"应显示在单元格中,否则值应显示在"小数点后两位四舍五入"中。

由于表是自动生成的,我无法访问单个单元格的值,所以我可以更改其字符串格式

属性DataFormatString="0.###E0"应用于整个列,而不是单个单元格。

在自动生成的Telerik RadGridView指定单元格(Silverlight)中应用DataFormatStri

在这种情况下,最好不要使用默认模板。相反,定义您自己的CellTemplate(GridViewDataColumn.CellTemplate)并对该值使用转换器。转换器看起来像:

class PriceConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        double price = Convert.ToDouble(value);
        if(price > 5.0)
        {
            // return the price formatted how you want
        }
        else
        {
            // return the price formatted differently
        }
    }
    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}