Sök…


Anmärkningar

XAML används i Silverlight-, Windows Phone-, Windows RT- och UWP-appar. Att dela kod eller konvertera kod mellan dessa är ibland svårare än önskvärt på grund av subtila skillnader mellan olika XAML-dialekter. Detta ämne strävar efter att ge en översikt över dessa skillnader med en kort förklaring.

Samlade databindningar: Markeringsförlängningen {x: Bind}

Databaser är viktiga för att arbeta med XAML. XAML-dialekten för UWP-appar ger en typ av bindning: markeringsförlängningen {x: Bind}.

Att arbeta med {Binding XXX} och {x: Bind XXX} är mestadels likvärdigt, med skillnaden att förlängningen x: Bind fungerar vid kompileringstid, vilket möjliggör bättre felsökningsfunktioner (t.ex. brytpunkter) och bättre prestanda.

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

X: Bind-markeringstillägget är bara tillgängligt för UWP-appar. Läs mer om detta i denna MSDN-artikel: https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth .

Alternativ för Silverlight, WPF, Windows RT: Använd syntaxen {Binding XXX}:

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

Importerar namnutrymmen i XAML

Oftast behöver du importera namnutrymmen i din XAML-fil. Hur det görs är olika för de olika XAML-varianterna.

För Windows Phone, Silverlight, WPF använder clr-namespace syntax:

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

Windows RT, UWP använder syntax:

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

Multi-bindande

Multi Binding är en funktion exklusiv för WPF-utveckling. Det tillåter en bindning till flera värden samtidigt (vanligtvis används med en MultiValueConverter).

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

Andra plattformar än WPF stöder inte flera bindningar. Du måste hitta alternativa lösningar (som att flytta koden från visning och omvandlare till visningsmodellen) eller ta ut beteenden från tredje part som i den här artikeln: http://www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow