Expressions in WPF XAML Bindings using Essential Calculate

By now you are probably getting very used to setting up bindings in XAML and getting spoilt at it too! I am sure many of you frown when you have to write converters in code-behind just for a simple conversion. For example, let us say you want to simply show the sum of the value of two data sources in a text box (a simple “A + B” expression). There is no way to do this in XAML, so you end up writing a converter for it.

This got us thinking and wondering how to make use of our very powerful Calculation Engine in our library. I mean, it has all the logic built in to support parsing a whole bunch of formulas/expressions and wouldn’t it be great to somehow extend its capabilities to XAML.

That train of thought led us to create some simple converters that you can easily utilize in your applications to extend your binding code with Expressions!

Imagine you want to create a simple Product Purchase UI like this where one value depends on several other elements above it:

 

Product Purchase Form Simplified Using Expressions in Bindings

This would normally require converters in Binding expressions. But, let us see how we can totally avoid code-behind using Syncfusion’s built-in SingleVariableExpresssionConverter and MultipleVariableExpressionConverter.

Single Variable Expressions

Here is an example of how to define Single Variable Expressions:

In your Resources section:


The “Product Price” TextBox where you want to display the result of an expression like this ( * 30) could be defined like this:

 

Multi-Variable Expressions

Here is an example of how to define a Multi-Variable Expression:

In your Resources section:

            

The “Total Price” TextBox where you want to display the result of an expression like this ( + ) could be defined like this:

  
          
                    C
                    [a]+[b]
                    
                    
                
  

Expressions Support

The Calculation Engine’s support for operators and functions is VAST! Take a look at them all in the Calculation Engine’s Users Guide (browse to “Concepts and Features/Supported Algebra” and “Concepts and Features/Function Reference Section”) in the tree on the left.

Here is also a sample project that illustrates this scenario. This will work with Essential Studio 2010 Volume 2.

wpf