Zoeken…


Opmerkingen

XAML wordt gebruikt in Silverlight-, Windows Phone-, Windows RT- en UWP-apps. Het delen van code of het omzetten van code hiertussen is soms moeilijker dan wenselijk vanwege subtiele verschillen tussen de verschillende XAML-dialecten. Dit onderwerp streeft ernaar een overzicht van deze verschillen te geven met een korte uitleg.

Gecompileerde gegevensbindingen: de {x: Bind} markup-extensie

Databases zijn essentieel voor het werken met XAML. Het XAML-dialect voor UWP-apps biedt een soort binding: de {x: Bind} markup-extensie.

Het werken met {Binding XXX} en {x: Bind XXX} is meestal equivalent, met het verschil dat de x: Bind-extensie werkt tijdens het compileren, wat betere debugging-mogelijkheden (bijv. Breekpunten) en betere prestaties mogelijk maakt.

<object property="{x:Bind bindingPath}" />

De x: Bind markup-extensie is alleen beschikbaar voor UWP-apps. Meer informatie hierover in dit MSDN-artikel: https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth .

Alternatieven voor Silverlight, WPF, Windows RT: Gebruik de standaard {Binding XXX} syntaxis:

<object property="{Binding bindingPath}" />

Naamruimten importeren in XAML

Meestal moet u naamruimten in uw XAML-bestand importeren. Hoe dit wordt gedaan, is verschillend voor de verschillende XAML-varianten.

Voor Windows Phone, Silverlight en WPF gebruikt u de syntaxis van clr-namespace:

<Window ... xmlns:internal="clr-namespace:rootnamespace.namespace"
            xmlns:external="clr-namespace:rootnamespace.namespace;assembly=externalAssembly"
>

Windows RT, UWP gebruiken de syntaxis:

<Page ... xmlns:internal="using:rootnamespace.namespace"
            xmlns:external="using:rootnamespace.namespace;assembly=externalAssembly"
>

Multi binding

Multi Binding is een functie exclusief voor WPF-ontwikkeling. Het maakt een binding mogelijk met meerdere waarden tegelijk (meestal gebruikt met een MultiValueConverter).

<TextBox>
    <TextBox.Text>
        <MultiBinding Converter="{StaticResource MyConverter}">
            <Binding Path="PropertyOne"/>
            <Binding Path="PropertyTwo"/>
        </MultiBinding>
    </TextBox.Text>
</TextBox>

Andere platforms dan WPF ondersteunen geen multi-binding. Je moet alternatieve oplossingen vinden (zoals het verplaatsen van de code van view en converters naar het viewmodel) of gebruik gedrag van derden zoals in dit artikel: http://www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow