Xamarin.forms: Rompiendo cambios de Xaml en XF 3.1

Creado en 24 jun. 2018  ·  3Comentarios  ·  Fuente: xamarin/Xamarin.Forms

Solo quería informarle que si actualiza a la versión XF 3.1, es posible que obtenga errores xaml que indiquen que "los nombres de los miembros no pueden ser los mismos que los del tipo adjunto". este es un error de C # bien conocido si los tipos padre e hijo tienen el mismo nombre

La razón de esto es que el código siguiente funciona en versiones anteriores a XF 3.1 pero devuelve un error en XF 3.1 ... No estoy seguro de si se supone que es un error o una solución de un error todo el tiempo.

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

             x:Class="myApp.TestPage"  x:Name="TestPage" > 

  <ContentPage.Content>

            <c:cwTest x:Name="cwTest"  VerticalOptions="FillAndExpand"  HorizontalOptions="FillAndExpand"/>

  </ContentPage.Content>
</ContentPage>
Xaml </> invalid bug

Comentario más útil

@EmilAlipiev @StephaneDelcroix sí, hubiera sido útil estar advertido. Este es un cambio radical y su tipo de disculpa / excusa no ayuda.

Todos 3 comentarios

Lo único que cambió es que ahora creamos un campo para x:Name definido en el elemento XAML de nivel superior, por lo que se puede acceder a él desde el código subyacente eventualmente, y no lo estábamos antes.

Puede reproducir ese comportamiento con cualquier versión anterior de XF si tiene un Label o cualquier elemento en su xaml con un atributo `x: Name =" TestPage "'.

Lo sentimos si rompe parte de su código. Después de una cuidadosa consideración, esto no se considera un error ni una regresión. Su código solía depender de una validación faltante, pero ya no puede aprovechar esta falla.

La solución para esto es trivial, sencilla y muy sencilla de implementar.

@StephaneDelcroix Estoy de acuerdo con eso. Solo llamé su atención porque debería haberlo resaltado. VS2017 no me da suficiente información, más bien arroja cientos de errores para un solo archivo. una vez que restaure a 3.0, todo funciona bien. solo para que cualquier otra persona que tenga este error haga referencia a este problema.

@EmilAlipiev @StephaneDelcroix sí, hubiera sido útil estar advertido. Este es un cambio radical y su tipo de disculpa / excusa no ayuda.

¿Fue útil esta página
0 / 5 - 0 calificaciones