2013-06-26 80 views
0

我有一個列綁定與double類型屬性在自動生成Telerik RadGridView。應用DataFormatString自動生成Telerik RadGridView單元格指定(Silverlight)

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

我想多個DataFormatString w.r.t單元格。

例如:如果單元格中的值大於5,則應在單元格中顯示「指數值」,否則應在單元格中顯示「以小數點後兩位舍入」值。

由於生成表自動,我無法訪問單個單元格的值,這樣我就可以改變它的StringFormat

酒店DataFormatString="0.###E0"適用於完整的列,而不是在單個細胞上。

回答

0

在這種情況下最好的做法是不使用默認模板。相反,請定義您自己的CellTemplate(GridViewDataColumn.CellTemplate)並使用converter on the 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(); 
    } 
} 
+0

我如何返回科學計數法中的值? 例如:** 20.53E + 3 **中: '如果(價格> 5.0){ //返回20.53E + 3; } – Riz

+0

問題與自動生成列綁定 – Riz

+0

http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx具有所有的.NET字符串格式。另外,如果你使用CellTemplate,你不應該有一個問題綁定。通過代碼的外觀,您正在使用手動添加的列,而不是AutoGenerateColumns =「True」屬性。 –

相關問題