XAML Binding Expressions for WPF
Never write another converter again with ComponentOne Binding Expressions for WPF.
- Save time and write cleaner XAML with rich, inline expression syntax
- Concatenate strings, compute formulas, and apply if/else logic directly in your binding statements without the need for code-behind converters
Why Choose Binding Expressions for WPF?
Save Time and Write Cleaner XAML
Save time and write cleaner XAML by taking advantage of rich, inline expression syntax.
Evaluate Expressions in XAML
Perform simple expressions directly in XAML binding such as text concatenation and mathematical formulas.
No Need for Converters
By using Binding Expressions, your XAML will be more expressive and 100% self-contained. You can reduce the number of converter classes in your code.
WPF Binding Expressions Key Features
Logical and Arithmetic Operators
Perform simple arithmetic and mathematical functions in your bindings. You can use any of the common logical (=, >, <, <>, >=, <=) and arithmetic (+, -, *, /, ^) operators. You can also group expressions using parentheses. For example, “Amount * 8.5%” returns the value of the Amount property times 0.085:
<TextBlock Text="{c1:C1Binding Expression='Amount * 8.5%'}" />
<TextBlock Text="{c1:C1Binding Expression='Amount * 8.5%', StringFormat='c'}" />
Formatting Values
Binding objects have a StringFormat property that you can use to control the format of bound values. For example, the following XAML snippet applies a currency format to the evaluated expression:
Conditional Formatting
You can apply conditional formatting to your bound values using the IF function, which performs conditional logic. For example, the following XAML snippet formats values greater than 1,000 to appear bold:
<TextBlock
Text="{c1:C1Binding Amount}"
FontWeight="{c1:C1Binding Expression='IF(Amount > 1000, |bold|, |normal|)' }" />
<TextBlock
Text="{c1:C1Binding Expression=
'CONCATENATE(Amount, & quot; Tax: & quot;, Amount * 8.5%' }" />
Combining Values
You can use text functions to accomplish common scenarios like replacing characters, converting to upper or lower case, or combining multiple values into one. For example, you can use the CONCATENATE function to display the total amount in addition to the taxed amount with the following XAML snippet:
Use Quotes without Breaking Your XAML
Use quotes in your binding expressions without breaking your XAML. Binding Expressions for WPF support inline quotes in two forms: & quot; or use of the pipe (|) character. For example, the XAML snippet above could be rewritten with the following for more readability:
<TextBlock
Text="{c1:C1Binding Expression='CONCATENATE(Amount, | Tax: |, Amount * 8.5%' }" />
Clean and Expressive XAML
By using Binding Expressions, your XAML will be much cleaner and more expressive — as well as 100% self-contained. You don't need any external converters referenced from elsewhere in your solution.
Parse and Evaluate Expressions
Binding objects use the CalcEngine class to parse and evaluate expressions. CalcEngine is a public class, and can be used independently to parse strings into Expression objects or to parse strings to evaluate resulting expressions. For example, you could have a calculated TextBox that allows users to type expressions, like 4 + 16, and have them evaluated when the control loses focus by using the CalcEngine’s Evaluate method.