Szukaj…


Uwagi

XAML jest używany w aplikacjach Silverlight, Windows Phone, Windows RT i UWP. Udostępnianie kodu lub konwersja kodu między nimi jest czasami trudniejsza niż jest to pożądane ze względu na subtelne różnice między różnymi dialektami XAML. W tym temacie przedstawiono przegląd tych różnic wraz z krótkim wyjaśnieniem.

Skompilowane powiązania danych: rozszerzenie znaczników {x: Bind}

Databings są niezbędne do pracy z XAML. Dialekt XAML dla aplikacji UWP zapewnia rodzaj powiązania: rozszerzenie znaczników {x: Bind}.

Praca z {Binding XXX} i {x: Bind XXX} jest w większości równoważna, z tą różnicą, że rozszerzenie x: Bind działa w czasie kompilacji, co umożliwia lepsze możliwości debugowania (np. Punkty przerwania) i lepszą wydajność.

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

Rozszerzenie znaczników x: Bind jest dostępne tylko dla aplikacji UWP. Dowiedz się więcej na ten temat w tym artykule MSDN: https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth .

Alternatywy dla Silverlight, WPF, Windows RT: Użyj standardowej składni {Binding XXX}:

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

Importowanie przestrzeni nazw w XAML

Przez większość czasu musisz importować przestrzenie nazw do pliku XAML. Sposób ten jest różny dla różnych wariantów XAML.

W przypadku Windows Phone, Silverlight, WPF użyj składni clr-namespace:

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

Windows RT, UWP używają składni przy użyciu:

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

Multi Binding

Multi Binding to funkcja dostępna wyłącznie w programowaniu WPF. Umożliwia powiązanie z wieloma wartościami jednocześnie (zwykle używane z MultiValueConverter).

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

Platformy inne niż WPF nie obsługują wiązania wielu. Musisz znaleźć alternatywne rozwiązania (takie jak przeniesienie kodu z widoku i konwerterów do viewmodel) lub zastosować zachowania stron trzecich, takie jak w tym artykule: http://www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow