NavBar не отображается на DetailPage в Xamarin - PullRequest
2 голосов
/ 01 апреля 2019

Я создаю кроссплатформенное приложение Xamarin!

Приложение Coantain 3 Страницы:

MainPage (MasterDetailPage с выдвижным ящиком)

HomePage (ContentPage)

DetailGetData (ContentPage)

Homepage отображает список элементов в просмотре списка, каждый элемент доступен для выбора и показывает его детали на следующей странице, которая находится в DetailGetData

Проблема в том, что когда на следующей странице отображаются подробности, NavBar не появляется, и я не знаю, зачем мне помогать в этом!

Снимок экрана: https://i.stack.imgur.com/1csoB.png

DetailGetData.xaml:

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


<Frame  BackgroundColor="White" HasShadow="True" BorderColor="White" 
        HorizontalOptions="CenterAndExpand"  VerticalOptions="CenterAndExpand" 
        Padding="0" Margin="0" HeightRequest="250" WidthRequest="240">




    <Grid Padding="0" Margin="0" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" BackgroundColor="White" RowSpacing="0">
        <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition Height="50"/>
            <RowDefinition Height="50"/>
            <RowDefinition Height="50"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="250"/>

        </Grid.ColumnDefinitions>


        <Image Source="ford.jpg" Grid.Column="0" Grid.Row="0" HorizontalOptions="FillAndExpand" Aspect="AspectFill" VerticalOptions="FillAndExpand" />

        <Label  Text="{Binding employee_name }" TextColor="#00477f" x:Name="empname" Grid.Column="0" Grid.Row="1" HorizontalOptions="Center"/>
        <Label  Text="{Binding employee_age }" TextColor="#00477f" x:Name="age" Grid.Column="0" Grid.Row="2" HorizontalOptions="Center"/>
        <Label  Text="{Binding employee_salary }" TextColor="#00477f" x:Name="salary" Grid.Column="0" Grid.Row="3" HorizontalOptions="Center"/>

    </Grid>
</Frame>

DetailGetData.xaml.cs:

using MSPL.MenuItems;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace MSPL.Views
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class DetailGetData : ContentPage
    { 

    public GetData thisData;

    public DetailGetData()
    {

    }

    public DetailGetData (GetData _data)
    {
        NavigationPage.SetHasNavigationBar(this, true);
        InitializeComponent ();
        BindingList(_data);
        thisData = _data;
    }

    public void BindingList(GetData data)
    {
        empname.Text = data.employee_name;
        age.Text = data.employee_age;
        salary.Text = data.employee_salary;
    }     
}
}

1 Ответ

1 голос
/ 01 апреля 2019

Панель навигации появляется только тогда, когда ваша страница обернута в страницу навигации.Из вашего MasterDetail вы бы сделали что-то вроде этого

Detail = new NavigationPage(new HomePage));
...