0

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

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

我想要多个 DataFormatString wrt Cell。

例如:如果单元格中的值大于 5,则单元格中应显示“指数值”,否则单元格中应显示“四舍五入,保留两位小数”。

由于表格是自动生成的,我无法访问单个单元格的值,所以我可以更改它的 stringFormat

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

4

1 回答 1

0

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

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();
    }
}
于 2013-06-26T12:35:25.873 回答