Показать контент-представление на кадре - PullRequest
0 голосов
/ 04 октября 2018

Я занимаюсь разработкой кроссплатформенного приложения с использованием форм xaml, и мне еще предстоит выяснить, как вызвать ContentView ontapGesture.Я могу вызвать ContentView на формах xaml, используя <local:MailRoomList/>, но не могу показать просмотр или событие щелчка.

Я попытался показать представление на стеке, используя StackLayoutID.Children.Add(new MailRoomList());, но это не то, что я хочу.Я хочу показать полный контент на странице контента с включенной кнопкой "Назад".

Пожалуйста, сообщите.Спасибо

MailRoomList

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="xx.xxxx.xx.Views.MailRoomList">
<ContentView.Content>
  <StackLayout>
      <Label Text="This is my MailRoom List" />
  </StackLayout>
</ContentView.Content>
</ContentView>

OnTapGesture

<Frame.GestureRecognizers>
    <TapGestureRecognizer Tapped="OnRegisterMail" NumberOfTapsRequired="1"/>
</Frame.GestureRecognizers>

CodeBehind

async void OnRegisterMail(object sender, EventArgs e)
{
    await Navigation.PushAsync(new MailRoomList());
}

Редактировать: Домашняя страница

<?xml version="1.0" encoding="utf-8" ?>
<xf1:BottomBarPage
         xmlns:xf1="clr-namespace:xx.xxxx.xx.BottomBar" 
         xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:xx.xxxx.xx.Views"
        x:Class="xx.xxxx.xx.Views.Home">
<ContentPage x:Name="MailRoomPage" Title="MailRoom" Icon="mailroom.png" xf1:BottomBarPageExtensions.TabColor="Orange" xf1:BottomBarPageExtensions.BadgeCount="5">
    <local:MailRoom/>
</ContentPage>

<ContentPage Title="Transport" Icon="transport.png" xf1:BottomBarPageExtensions.TabColor="Green" xf1:BottomBarPageExtensions.BadgeCount="10">
    <Label VerticalOptions="Center" HorizontalTextAlignment="Center" Text="Transport" FontSize="Large"/>
</ContentPage>
<ContentPage Title="Communication" Icon="communication.png" xf1:BottomBarPageExtensions.TabColor="Blue" xf1:BottomBarPageExtensions.BadgeCount="3">
    <Label VerticalOptions="Center" HorizontalTextAlignment="Center" Text="Communication" FontSize="Large"/>
</ContentPage>
<ContentPage Title="HSE" Icon="hse.png" xf1:BottomBarPageExtensions.TabColor="Red" xf1:BottomBarPageExtensions.BadgeCount="2">
    <Label VerticalOptions="Center" HorizontalTextAlignment="Center" Text="HSE" FontSize="Large"/>
</ContentPage>
<ContentPage Title="Meeting" Icon="meeting.png" xf1:BottomBarPageExtensions.TabColor="DarkCyan" xf1:BottomBarPageExtensions.BadgeCount="5">
    <Label VerticalOptions="Center" HorizontalTextAlignment="Center" Text="Meeting" FontSize="Large"/>
</ContentPage>

На главной странице выше я звоню своему представлению <local:MailRoom/>, которое вызывает другое представление MailRoomList.Здесь мне нужен ваш совет о том, как вызвать представление контента из другого представления контента.

1 Ответ

0 голосов
/ 04 октября 2018

ContentView - это View, а не Page.Измените свой MainRoomList 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="xx.xxxx.xx.Views.MailRoomList">
     <StackLayout>
        <Label Text="This is my MailRoom List" />
     </StackLayout>
 </ContentPage>

View, не поддерживающий навигацию, они могут быть переведены на , только если они принадлежат Page, которые являются объектамичто содержит навигационную инфраструктуру.

Если вы хотите сохранить свой MailRoomList как ContentView, то вам нужно включить его в некоторую другую страницу ,и выполнить навигацию (внутри метода нажатия) к этому другому странице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...