{x:Bind} is a markup extension used in XAML and was released with Windows Universal Apps. The {x:Bind} binding is fundermentally different to the {Binding} binding as it is done at XAML load time and thus provides performance and diagnostic improvements over {Binding} which is done at runtime using reflection.
The {x:Bind}
markup extension added for Windows 10, is an alternative to {Binding}
. {x:Bind}
currently lacks some of the features of {Binding}
, but it runs in less time and less memory than {Binding}
and supports a better debugging experience.
At XAML load time, {x:Bind}
is converted into what you can think of as a binding object, and this object gets a value from a property on a data source. As with {Binding}
the bound object can optionally be configured to observe changes in the value of the data source property and refresh itself based on those changes and it can also, optionally, be configured to push changes in its own value back to the source property.
The binding objects created by {x:Bind}
and {Binding}
are largely functionally equivalent, but {x:Bind}
executes special-purpose code, which it generates at compile-time, and {Binding}
uses general-purpose runtime object inspection. Consequently, {x:Bind}
bindings (often referred-to as compiled bindings) have great performance, provide compile-time validation of your binding expressions, and support debugging by enabling you to set breakpoints in the code files that are generated as the partial class for your page.
Further detail can be found here