DevExpress - 在样式格式条件中设置表达式字符串的格式

本文关键字:格式 设置 表达式 字符串 条件 样式 DevExpress | 更新日期: 2023-09-27 18:37:21

我正在尝试格式化样式格式条件表达式中的字符串,以便在条件为真时用某种颜色绘制单元格的背景颜色。我的条件是,如果两个值的减法等于另一个值,我只进行比较,我像这样执行比较,因为值是双倍的,并且有必要避免精度误差,其中 EPSILON 为 0.001:

if (Math.Abs(rvalue - tara - value) > EPSILON)
{
   // do something
}

正在尝试这段代码,但不起作用,如果有人可以这样做,请帮助我。谢谢

var condExpression = new StyleFormatCondition(FormatConditionEnum.Expression);
condExpression.Column = gv_MateriaPrima.Columns[3];
condExpression.Appearance.BackColor = Color.OrangeRed;
condExpression.Expression = String.Format("Abs([FieldName] - {0} - {1}) > {2}",
value1, value2, EPSILON);

DevExpress - 在样式格式条件中设置表达式字符串的格式

是否已将格式条件添加到 GridView.FormatConditions 集合中?
这是对我正常工作的代码片段(请检查与您的代码的差异):

// just sample data
gridControl1.DataSource = new List<DataObj> { 
    new DataObj() { RValue = 0.2 }, 
    new DataObj() { RValue = 0.21 },  // !!! Orange
    new DataObj() { RValue = 0.201 }, // !!! Orange
    new DataObj() { RValue = 0.2001 },
    new DataObj() { RValue = 0.20001 },  
};
gridView1.PopulateColumns();
//...
var condExpression = new StyleFormatCondition(FormatConditionEnum.Expression);
condExpression.Column = gridView1.Columns["RValue"];
condExpression.Appearance.BackColor = Color.OrangeRed;
condExpression.Appearance.Options.UseBackColor = true;
condExpression.Expression = String.Format("Abs([RValue] - {0} - {1}) > {2}", 0.1, 0.1, EPSILON);
gridView1.FormatConditions.Add(condExpression);
//...
class DataObj {
    public double RValue { get; set; }
}