“在当前上下文中不存在占位符”

时间:2018-11-26 00:26:17

标签: c# xamarin

我正在尝试在Xamarin中制作一个导航栏。我在MainPage.xaml中创建了一个占位符x:name的上下文视图,当我在xaml.cs页面中调用它时,它说“在当前上下文中不存在占位符”请记住,我真的是Xamarin的新手。任何帮助将不胜感激。在此先感谢

MainPage.xaml         

        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="1"/>
            <RowDefinition Height="44"/>
        </Grid.RowDefinitions>
        <ContentView x:Name="PlaceHolder" Grid.Row="0"/>
        <BoxView BackgroundColor="#DCDCDC" Grid.Row="1"/>

MainPage.xaml.cs

public partial class HomePage : ContentPage
    {
        void Icon1_Tapped (object sender, System.EventArgs e)
        {
            var page = new HomePage();
            PlaceHolder.ContentView = page.Content;

        }

    }
}

1 个答案:

答案 0 :(得分:0)

您的Page类只是缺少对InitializeComponent的调用。那是对页面的部分类的方法调用,该部分类将在内部对XAML文件进行一些处理(更多信息可以在here中找到)。

public partial class HomePage : ContentPage
{
    public HomePage()
    {
        InitializeComponent();
    } 

    void Icon1_Tapped (object sender, System.EventArgs e)
    {
        var page = new HomePage();
        PlaceHolder.ContentView = page.Content;

    }
}

还请确保xaml文件具有正确设置的类类型。如果您使用的是ContentPage,则应该具有以下内容:

<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="YourNamespace.HomePage">

<!-- your content -->

</ContentPage