Xamarin.forms: Нарушение изменений Xaml в XF 3.1

Созданный на 24 июн. 2018  ·  3Комментарии  ·  Источник: xamarin/Xamarin.Forms

Я просто хотел сообщить вам, что если вы обновитесь до версии XF 3.1, вы можете получить ошибки xaml, сообщающие, что «имена участников не могут совпадать с их включающим типом». это хорошо известная ошибка C #, если родительский и дочерний типы имеют одинаковое имя.

Причина этого в том, что приведенный ниже код работает в версиях до XF 3.1, но возвращает ошибку в XF 3.1 ... Я не уверен, что это всегда должно быть ошибкой или исправлением ошибки?

<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

Самый полезный комментарий

@EmilAlipiev @StephaneDelcroix да, было бы полезно получить предупреждение. Это критическое изменение, и ваши извинения / оправдания бесполезны.

Все 3 Комментарий

Единственное, что изменилось, - это то, что теперь мы создаем поле для x:Name определенного в элементе XAML верхнего уровня, так что в конечном итоге к нему можно будет получить доступ из кода программной части, чего мы не делали раньше.

Вы можете воспроизвести это поведение с любой предыдущей версией XF, имея Label или любой элемент в вашем xaml с атрибутом `x: Name =" TestPage "'.

Приносим извинения, если это нарушает часть вашего кода. После тщательного рассмотрения это не считается ошибкой или регрессом. Раньше ваш код полагался на отсутствующую проверку, но вы больше не можете использовать этот сбой.

Обходной путь для этого тривиален, прост и очень прост в использовании.

@StephaneDelcroix Я согласен с этим. Я обратил ваше внимание только потому, что вы должны были это выделить. VS2017 не дает мне достаточно информации, скорее он выдает сотни ошибок для одного файла. как только я вернусь к 3.0, все будет работать нормально. просто для всех, у кого есть эта ошибка, чтобы сослаться на эту проблему.

@EmilAlipiev @StephaneDelcroix да, было бы полезно получить предупреждение. Это критическое изменение, и ваши извинения / оправдания бесполезны.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги