繁体   English   中英

Xamarin.Forms应用程序上的无效强制转换异常

[英]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中捕获大多数此类错别字,可以启用XAML编译器( XAMLC )。

XAMLC具有许多优点:

  • 它执行XAML的编译时检查,并通知用户任何错误。
  • 它消除了XAML元素的某些加载和实例化时间。
  • 它不再包含.xaml文件,有助于减小最终程序集的文件大小。

组装水平:

~~~~
[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace PhotoApp
~~~~

等级:

[XamlCompilation (XamlCompilationOptions.Compile)]
public class HomePage : ContentPage
{
  ~~~

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM