Templating allows you to define an expression once and bind it to multiple objects later. To make a part of an expression modifiable at runtime, you must define it as a parameter using a string name via ExpressionValues.
To update a template's parameters (like changing which visual is referenced or changing a constant value), use SetReferenceParameter or SetScalarParameter on the ExpressionNode.
// 1. Define parameters with string names for later updates
var additionOffset = ExpressionValues.Constant.CreateScalarConstant("addOffset", 50f);
var expressionNode = ExpressionValues.Reference.CreateVisualReference("visualA", _visualA) + additionOffset;
// ... later in the code ...
// 2. Update the template parameters
expressionNode.SetReferenceParameter("visualA", _visualC);
expressionNode.SetScalarParameter("addOffset", 100f);
var additionOffset = ExpressionValues.Constant.CreateScalarConstant("addOffset", 50f);
var expressionNode = ExpressionValues.Reference.CreateVisualReference("visualA", _visualA) + additionOffset;
// Update the template
expressionNode.SetReferenceParameter("visualA", _visualC);
expressionNode.SetScalarParameter("addOffset", 100f);