Xamarin.forms: XF 3.1上的Xaml重大更改

创建于 2018-06-24  ·  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条评论

唯一更改的是,我们现在为顶级XAML元素定义的x:Name创建了一个字段,因此最终可以从后面的代码中访问它,而以前则不是。

您可以通过在Xaml中具有Label或xaml中具有x:Name =“ TestPage”'属性的任何元素来重现该行为。

如果它破坏了您的某些代码,我们深感抱歉。 经过仔细考虑,这不被视为错误或回归。 您的代码曾经依赖于缺少的验证,但是您再也无法利用此失败了。

解决方法是微不足道的,直接的,并且安装起来非常简单。

@StephaneDelcroix我同意这一点。 我只是引起您的注意,因为您应该突出显示它。 VS2017没有给我足够的信息,相反,它为单个文件引发了100多个错误。 一旦我恢复到3.0,一切正常。 仅供有此错误的其他人参考此问题。

@EmilAlipiev @StephaneDelcroix是的,事先警告会有所帮助。 这是一个重大变化,您的道歉/辩解无济于事。

此页面是否有帮助?
0 / 5 - 0 等级