Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.Forms Shell-除非在<;选项卡>;?_Xamarin_Xamarin.forms - Fatal编程技术网

Xamarin.Forms Shell-除非在<;选项卡>;?

Xamarin.Forms Shell-除非在<;选项卡>;?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我已经从微软下载并打开了Xamarin.FormsShell示例项目,但是它在AppShell.xaml中抛出了构建错误 错误是: 错误XLS0503无法将“ShellContent”类型的值添加到“IList”类型的集合或字典中。Xaminals AppShell.xaml 135 错误XLS0503无法将“MenuItem”类型的值添加到“IList”类型的集合或字典中。Xaminals AppShell.xaml 158 无效类型:预期类型为“ShellSection”,实际类型为“She

我已经从微软下载并打开了Xamarin.FormsShell示例项目,但是它在AppShell.xaml中抛出了构建错误

错误是:

错误XLS0503无法将“ShellContent”类型的值添加到“IList”类型的集合或字典中。Xaminals AppShell.xaml 135

错误XLS0503无法将“MenuItem”类型的值添加到“IList”类型的集合或字典中。Xaminals AppShell.xaml 158

无效类型:预期类型为“ShellSection”,实际类型为“ShellContent”

无效类型:预期类型为“ShellSection”,实际类型为“MenuItem”

当我创建一个新的Xamarin Shell应用程序并遵循Microsoft相应的指南时,我最初发现了这个问题,他们的示例代码描述了将一些ShellContent元素直接放在应用程序的AppShell.xaml文件中的一个弹出项下

以下是Microsoft Xanimals示例项目中的相关代码部分:

<FlyoutItem Route="animals"
            Title="Animals"
            FlyoutDisplayOptions="AsMultipleItems">
    <Tab Title="Domestic"
         Route="domestic"
         Icon="paw.png">
        <ShellContent Route="cats"
                      Style="{StaticResource DomesticShell}"
                      Title="Cats"
                      Icon="cat.png"
                      ContentTemplate="{DataTemplate views:CatsPage}" />
        <ShellContent Route="dogs"
                      Style="{StaticResource DomesticShell}"
                      Title="Dogs"
                      Icon="dog.png"
                      ContentTemplate="{DataTemplate views:DogsPage}" />
    </Tab>
    <ShellContent Route="monkeys"
                  Style="{StaticResource MonkeysShell}"
                  Title="Monkeys"
                  Icon="monkey.png"
                  ContentTemplate="{DataTemplate views:MonkeysPage}" />
    <ShellContent Route="elephants"
                  Style="{StaticResource ElephantsShell}"
                  Title="Elephants"
                  Icon="elephant.png"
                  ContentTemplate="{DataTemplate views:ElephantsPage}" />  
    <ShellContent Route="bears"
                  Style="{StaticResource BearsShell}"
                  Title="Bears"
                  Icon="bear.png"
                  ContentTemplate="{DataTemplate views:BearsPage}" />
</FlyoutItem>

<ShellContent Route="about"
              Style="{StaticResource AboutShell}"
              Title="About"
              Icon="info.png"
              ContentTemplate="{DataTemplate views:AboutPage}" />

<MenuItem Text="Random"
          Icon="random.png"
          Command="{Binding RandomPageCommand}" />
<MenuItem Text="Help"
          Icon="help.png"
          Command="{Binding HelpCommand}"
          CommandParameter="https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/shell" />

以下是上述代码的屏幕截图,Intellisense强调了问题区域:

作为参考,我尝试将Xamarin.Forms NuGet引用更新到4.0.0.425677和4.1.0.673156之间的每个版本,但仍然没有成功。 我使用的是Visual Studio Professional 2019版本16.1.2和.NET Framework版本4.7.03056

微软的Xanimals示例代码是错误的,还是我遗漏了什么? 同样,我使用的是Xanimals示例代码,没有任何更改

编辑: Microsoft自己的Shell示例解释了以下内容:

ShellContent,它表示应用程序中的ContentPage对象。每个ShellContent对象都是选项卡对象的子对象。当一个选项卡中存在多个ShellContent对象时,这些对象将可由顶部选项卡导航


然而,尽管断言每个ShellContent对象都是Tab对象的子对象,但它们的代码示例似乎与此规则相矛盾(在屏幕截图中,标签之外的ShellContent,以及弹出项之外的ShellContent)。

我遇到了同样的问题,我尝试了以下方法:

  • 清洁溶液并重新构建

  • 删除
    obj
    bin
    文件并重新启动visual studio


  • 这两种方法都会忽略警告并运行它。这是可行的,也许问题会在以后得到解决。

    我遇到了相同的问题。因此,这是一个智能问题,因为项目可以顺利编译和运行。您是如何让应用程序在出现错误的情况下运行的?我的项目可以很好地构建,但部署失败是因为这些错误。@JakeSteed奇怪的是,我只给出了警告,没有给出错误