首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RowCellStyle中的DevExpress DisplayFormat

RowCellStyle中的DevExpress DisplayFormat
EN

Stack Overflow用户
提问于 2017-03-09 02:33:53
回答 1查看 756关注 0票数 0

切换应用程序以使用DevExpress XtraGrid,并实现了行/单元格的自定义颜色和格式。

对于大多数零件来说,格式的应用是正确的。但是,当应用于遵循"#,###;(#,###);0“格式的小数1000时,结果是1000.0000而不是1,000。

代码语言:javascript
复制
gridView.RowCellStyle += CellFormatting;
private void CellFormatting(object sender, RowCellStyleEventArgs e)    
 {
        if (gridView.IsRowSelected(e.RowHandle))
        {
            e.Appearance.BackColor = SystemColors.Highlight;
            e.Appearance.ForeColor = SystemColors.HighlightText;
            return;
        }

        // get cell by its index
        var gridRow = gridView.GetRow(e.RowHandle);
        TLColumn columnEnum = ((BindableTextBoxColumn)e.Column).ColumnEnum;
        // get new format values 
        T row = (T)gridRow;

        e.Column.DisplayFormat.FormatString = row.GetCellFormat(columnEnum);
        e.Appearance.BackColor = row.GetCellBackColor(columnEnum);
        e.Appearance.ForeColor = row.GetCellColor(columnEnum);

 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-09 05:52:11

对于不使用CustomColumnDisplayText的绑定列,需要在设置DisplayFormatString之前设置FormatType。

代码语言:javascript
复制
e.Column.ColumnType 

可以显示绑定属性的类型

代码语言:javascript
复制
 private void CellFormatting(object sender, RowCellStyleEventArgs e)
 {
       // get cell by its index
        var gridRow = gridView.GetRow(e.RowHandle);
        var column = (BindableTextBoxColumn)e.Column;
        TLColumn columnEnum = column.ColumnEnum;
        // get new format values 
        T row = (T)gridRow;

        e.Column.DisplayFormat.FormatType = (column.IsNumeric) ? FormatType.Numeric : column.DisplayFormat.FormatType;
        e.Column.DisplayFormat.FormatString = row.GetCellFormat(columnEnum);
        if (gridView.IsRowSelected(e.RowHandle))
        {
            e.Appearance.BackColor = SystemColors.Highlight;
            e.Appearance.ForeColor = SystemColors.HighlightText;
            return;
        }
        e.Appearance.BackColor = row.GetCellBackColor(columnEnum);
        e.Appearance.ForeColor = row.GetCellColor(columnEnum);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42679241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档