Home / Blog / Universal apps: XAML Compiled Bindings
Universal apps: XAML Compiled Bindings

Universal apps: XAML Compiled Bindings

Een van nieuwe features in de Windows 10 SDK voor XAML univeral apps is het gebruik van Compiled Bindings. Dit heeft performance voordelen.

Een Binding zoals we die eerder kennen wordt runtime geëvalueerd met behulp van reflectie, waar meer CPU voor nodig is om dit verwerken. Met compiled bindings, wordt door de compiler een code equivalent gegenereerd, wat een performance winst is.
Een Binding die er zo uitziet:

<TextBlockText="{Binding Name}"/>

Kan vervangen worden door een compile time binding:

<TextBlockText="{x:Bind ViewModel.Name}"/>

Let wel op dat er verschillen zijn in de werking. De compiled binding bind niet met de DataContext (die is namelijk van type object waar de compiler zonder reflectie niets mee kan), maar met de code behind van de pagina. Dit betekent dat je in code behind van de pagina het ViewModel via een property beschikbaar moet maken. Dit ziet in de code behind van een view zo uit:

public sealed partial class PersonInfoView
{
    protected PersonModel ViewModel
    { 
      get 
      { 
        return DataContext as PersonModel; 
      } 
    }
 
    public PersonInfoView()
    {
      this.InitializeComponent();
    }
}

Meer info op : http://channel9.msdn.com/Events/Build/2015/3-635

 

WPF

Het zou een mooie verbetering zijn als deze UWP verbetering ook naar WPF XAML wordt geport. Je kan een stem uit brengen om dit bij Microsoft onder de aandacht te brengen:

https://wpdev.uservoice.com/forums/427690-windows-presentation-foundation-wpf/suggestions/7810488-implement-x-bind-for-wpf

 

 

Contact