[英]Invalid Cast Exception on Xamarin.Forms app
我创建了一个新的Xamarin.Forms移动应用程序,唯一要做的是将.xaml
文件中的默认欢迎使用xamarin标签替换为:
<Grid Margin="0,20,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>>
<ColumnDefinition Width="*"/>>
<ColumnDefinition Width="*"/>>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Text="You are: (X)" Grid.Row="0" Grid.Column="0" Margin="5"/>
<Label Text="Your opponent is: (O)" Grid.Row="0" Grid.Column="2" Margin="5" HorizontalTextAlignment="End"/>
</Grid>
该预览器无法在android或ios预览器上运行,并且当我运行该程序时,在以下代码行中得到了System.InvalidCastException
,该代码已在预生成的代码中: global::Xamarin.Forms.Xaml.Extensions.LoadFromXaml(this, typeof(ticTactTestPage));
我仍然是一个初学者,所以我对此进行了一些搜索,并且在大多数情况下,异常是由开发人员编写的代码中引发,但是在这种情况下,除了删除<Label Text="Welcome to Xamarin!"/>
.xaml
文件中的<Label Text="Welcome to Xamarin!"/>
。 谁能解决这个问题?
编辑1:用户建议将标签移到<Grid><Grid/>
因为我最初是将标签移到外部。 但是,问题仍然存在。
在ColumnDefinition Widths元素的末尾有一个额外的>
:
<Grid Margin="0,20,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
<Label Text="You are: (X)" Grid.Row="0" Grid.Column="0" Margin="5"/>
<Label Text="Your opponent is: (O)" Grid.Row="0" Grid.Column="2" Margin="5" HorizontalTextAlignment="End"/>
要在XAML中捕获大多数此类错别字,可以启用XAML编译器( XAMLC
)。
XAMLC具有许多优点:
~~~~
[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace PhotoApp
~~~~
[XamlCompilation (XamlCompilationOptions.Compile)]
public class HomePage : ContentPage
{
~~~
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.