Xamarin.forms: Quebrando as alterações do Xaml no XF 3.1

Criado em 24 jun. 2018  ·  3Comentários  ·  Fonte: xamarin/Xamarin.Forms

Eu só queria informar que se você atualizar para a versão XF 3.1, poderá obter erros xaml informando que "os nomes dos membros não podem ser iguais aos do tipo que os inclui". este é um erro C # bem conhecido se os tipos pai e filho tiverem o mesmo nome

A razão para isso é que o código abaixo funciona em versões anteriores ao XF 3.1, mas retorna um erro no XF 3.1 ... Não tenho certeza se isso deve ser um bug ou a correção de um bug o tempo todo?

<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

Comentários muito úteis

@EmilAlipiev @StephaneDelcroix sim, teria sido útil estar avisado. Esta é uma mudança significativa e o seu tipo de desculpa / desculpa não ajuda em nada.

Todos 3 comentários

A única coisa que mudou é que agora criamos um campo para x:Name definido no elemento XAML de nível superior, para que possa ser acessado por trás do código eventualmente, e não éramos antes.

Você poderia reproduzir esse comportamento com qualquer versão anterior do XF tendo um Label ou qualquer elemento em seu xaml com um atributo `x: Name =" TestPage "'.

Lamentamos se isso quebrar algum de seu código. Após uma consideração cuidadosa, isso não é considerado um bug ou uma regressão. Seu código costumava depender de uma validação ausente, mas você não pode mais explorar essa falha.

A solução alternativa para isso é trivial, direta e muito simples de implementar.

@StephaneDelcroix Eu concordo com isso. Eu só chamei sua atenção porque você deveria ter destacado. VS2017 não me dá informações suficientes, em vez disso, ele lança centenas de erros para um único arquivo. uma vez que eu restauro para 3.0, tudo funciona bem. apenas para qualquer outra pessoa que tenha esse erro para fazer referência a esse problema.

@EmilAlipiev @StephaneDelcroix sim, teria sido útil estar avisado. Esta é uma mudança significativa e o seu tipo de desculpa / desculpa não ajuda em nada.

Esta página foi útil?
0 / 5 - 0 avaliações