wpf-118915-controls-and-libraries-data-grid-conditional-formatting-conditional-formats-formatting-values-using-custom-conditions.md
A Custom Condition allows you to use a custom expression for a conditional formatting rule. Refer to the following topics for more information:
The image below displays the grid column whose Birthday cells are blue if their values are greater than 1/1/1980 and less than 1/1/1990.
This topic consists of the following sections:
Create the FormatCondition class instance and specify the following settings to create a conditional format in code:
Specify the expression that defines the comparison logic by setting the FormatConditionBase.Expression property.
Use the FormatConditionBase.FieldName property to specify the column’s field name to which to apply the conditional format.
Specify the target cells’ formatting:
Add the resulting FormatCondition instance to the TableView.FormatConditions (or TreeListView.FormatConditions) collection.
The following code sample illustrates how to define a conditional format in markup:
<dxg:TableView.FormatConditions>
<dxg:FormatCondition Expression="[Birthday] > #1980-01-01# And [Birthday] < #1990-01-01#" FieldName="Birthday" PredefinedFormatName="LightRedFillWithDarkRedText" />
</dxg:TableView.FormatConditions>
The code sample below illustrates how to define the same conditional format in code-behind:
var birthdayFormatCondition = new FormatCondition() {
Expression = "[Birthday] > #1980-01-01# And [Birthday] < #1990-01-01#",
FieldName = "Birthday",
PredefinedFormatName = "LightRedFillWithDarkRedText"
};
view.FormatConditions.Add(birthdayFormatCondition);
Dim birthdayFormatCondition = New FormatCondition() With {
.Expression = "[Birthday] > #1980-01-01# And [Birthday] < #1990-01-01#",
.FieldName = "Birthday",
.PredefinedFormatName = "LightRedFillWithDarkRedText"
}
view.FormatConditions.Add(birthdayFormatCondition)
Set the CompatibilitySettings.AllowEditTextExpressionInFormatRule property to true to allow users to edit a format condition’s expression text in the Conditional Formatting Menu and the Conditional Formatting Rules Manager :
using DevExpress.Xpf.Core;
public partial class App : Application {
static App() {
CompatibilitySettings.AllowEditTextExpressionInFormatRule = true;
}
}
Imports DevExpress.Xpf.Core
Public Partial Class App
Inherits Application
Private Shared Sub New()
CompatibilitySettings.AllowEditTextExpressionInFormatRule = True
End Sub
End Class
See Also