我正在使用Devxpress v13.1而不允许升级它。
我尝试从数据集中渲染devxpress网格。我希望$ 400.0000显示为$ 400.00并且无法使其工作。
我有以下代码 -
public MainWindow{
DataSet TransactionList = GetDataFromXML();// Loads XML to DS
TransactionGrid.ItemsSource = TransactionList.Tables[0];
TransactionGrid.CustomColumnDisplayText += TransactionGrid_CustomColumnDisplayText;
}
void TransactionGrid_CustomColumnDisplayText(object sender, DevExpress.Xpf.Grid.CustomColumnDisplayTextEventArgs e)
{
if (e.Column.FieldName == "Amount1")
{
//e.Column.DisplayTemplate =
e.DisplayText = String.Format("{0:0.00}", e.Value);
}
}
xaml代码 -
<dxg:GridControl Name="TransactionGrid" HorizontalAlignment="Left" Height="Auto" Width="Auto" >
<dxg:GridControl.View >
<dxg:TableView AllowEditing="False"></dxg:TableView>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Amount1" Header="Amount1" Width="80" >
</dxg:GridColumn>
</dxg:GridControl.Columns>
</dxg:GridControl
>
答案 0 :(得分:0)
我使用TGrid_CustomColumnDisplayText事件来实现结果。试图实现StringFormat =“c2”在xaml级别没有工作。我不得不在xaml页面的构造函数中调用下面的语句。
TGrid.CustomColumnDisplayText += TGrid_CustomColumnDisplayText;
活动如下─ void Tgrid_CustomColumnDisplayText(object sender, DevExpress.Xpf.Grid.CustomColumnDisplayTextEventArgs e) { CultureInfo ciUsa = new CultureInfo(“en-US”); if(e.Column.FieldName ==“Amount”) { e.DisplayText = String.IsNullOrEmpty(e.Value.ToString())? String.Empty:String.Format(ciUsa,“{0:c2}”,Convert.ToDecimal(e.Value)); }
}