找不到类型“名称”-Xamarin

时间:2018-08-29 09:21:01

标签: visual-studio xaml xamarin.forms

我正在尝试使用Xamarin Forms实现TabbedPage。它与TabbedPage and Content pages are not showing

非常相似

但是关于如何从MainPage.xam中包含其他xaml文件,我有一个简短的问题:

这是我的代码: 主页:

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:Assignment"
        x:Class="Assignment.MainPage">
<TabbedPage.Children>

    <local:Alarm /> "The type 'local:Alarm' was not found. Verify that you are not missing..."

</TabbedPage.Children>

上面的错误是唯一的构建错误。

Alarm.xaml:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="Assignment.Droid.Resources.layout.Alarm">
<ContentPage.Content>
    <StackLayout>
        <Label Text="Welcome to Xamarin.Forms!"
            VerticalOptions="CenterAndExpand" 
            HorizontalOptions="CenterAndExpand" />
    </StackLayout>
</ContentPage.Content>
</ContentPage>

这是我的项目结构:

Project Structure

在另一个链接上,我看到他将他的xaml文件放在布局文件夹中。

这是正确的设置吗?我想我错过了一些简单的事情。

1 个答案:

答案 0 :(得分:0)

如Greggz所述:将其移至您的共享项目中。

然后,您将不得不更改名称空间,因为这实际上很重要。在.NET领域中,习惯上,名称空间等于文件系统上的路径。

在您Alarm.xaml中,将此行从x:Class="Assignment.Droid.Resources.layout.Alarm"更改为x:Class="Assignment.Alarm"

然后进入您的代码隐藏Alarm.xaml.cs文件,并在那里也更改名称空间。因此,将namespace Assignment.Droid.Resources.layout更改为namespace Assignment

由于XAML及其背后的代码均作为部分类实现,因此需要同步。