Buscar..


Observaciones

XAML se usa en las aplicaciones Silverlight, Windows Phone, Windows RT y UWP. Compartir código o convertir código entre estos es a veces más difícil de lo deseable debido a diferencias sutiles entre los diversos dialectos XAML. Este tema se esfuerza por ofrecer una visión general de estas diferencias con una breve explicación.

Enlaces de datos compilados: la extensión de marcado {x: Bind}

Las bases de datos son esenciales para trabajar con XAML. El dialecto XAML para aplicaciones UWP proporciona un tipo de enlace: la extensión de marcado {x: Bind}.

Trabajar con {Binding XXX} y {x: Bind XXX} es casi todo equivalente, con la diferencia de que la extensión x: Bind funciona en tiempo de compilación, lo que permite mejores capacidades de depuración (por ejemplo, puntos de ruptura) y mejor rendimiento.

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

La extensión de marcado x: Bind solo está disponible para aplicaciones UWP. Obtenga más información sobre esto en este artículo de MSDN: https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth .

Alternativas para Silverlight, WPF, Windows RT: use la sintaxis estándar {Binding XXX}:

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

Importando espacios de nombres en XAML

La mayoría de las veces necesita importar espacios de nombres en su archivo XAML. Cómo se hace esto es diferente para las diferentes variantes de XAML.

Para Windows Phone, Silverlight, WPF usa la sintaxis de espacio de nombres clr:

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

Windows RT, UWP usa la sintaxis de uso:

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

Multi Binding

Multi Binding es una característica exclusiva para el desarrollo de WPF. Permite vincular varios valores a la vez (generalmente se utiliza con un MultiValueConverter).

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

Las plataformas distintas de WPF no admiten el enlace múltiple. Debe encontrar soluciones alternativas (como mover el código de la vista y los convertidores al modelo de visualización) o recurrir a comportamientos de terceros como en este artículo: http://www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow