我有一个内容页面,如下所示并显示,但是我在使用以下内容推送汉堡包菜单时失去了菜单。我正在使用xamrian中的标准主细节应用程序。
所以我的主要问题是如何在不丢失hambuger菜单的情况下将代码从后面的内容推送到内容页面?就像我使用push
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:telerikGrid="clr-namespace:Telerik.XamarinForms.DataGrid;assembly=Telerik.XamarinForms.DataGrid"
xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
xmlns:telerikInput="clr-namespace:Telerik.XamarinForms.Input;assembly=Telerik.XamarinForms.Input"
x:Class="FuelStockApp.Views.StockScanning">
<ContentPage.Content>
<StackLayout>
<telerikInput:RadButton x:Name="btnTestScan" BackgroundColor="Blue" TextColor="White" Clicked="BtnTestScan_Clicked" Text="Test Scan" />
<telerikGrid:RadDataGrid x:Name="gridItems" SelectionMode="Single" ItemsSource="{Binding Boms}" AutoGenerateColumns="False" >
<telerikGrid:RadDataGrid.Columns>
<telerikGrid:DataGridTextColumn PropertyName="StockItemID" HeaderText="StockItem" />
<telerikGrid:DataGridTextColumn PropertyName="Name" HeaderText="Name" />
<telerikGrid:DataGridTextColumn PropertyName="Quantity" HeaderText="Quantity" />
<telerikGrid:DataGridTemplateColumn x:Name="Actions" HeaderText="Scan Item">
<telerikGrid:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate>
<telerikInput:RadButton
Grid.Row="0" Grid.Column="1" HeightRequest="40" Text="Scan Item" x:Name="btnScanItem" Margin="0, 2, 0, 0" VerticalOptions="StartAndExpand" HorizontalOptions="Center"
BackgroundColor="Black" TextColor="White" />
</DataTemplate>
</telerikGrid:DataGridTemplateColumn.CellContentTemplate>
</telerikGrid:DataGridTemplateColumn>
<telerikGrid:DataGridTemplateColumn x:Name="Edit" HeaderText="Edit Item">
<telerikGrid:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate>
<telerikInput:RadButton
Grid.Row="0" Grid.Column="1" HeightRequest="40" Text="Edit Item" x:Name="btnScanItem" Margin="0, 2, 0, 0" VerticalOptions="StartAndExpand" HorizontalOptions="Center"
BackgroundColor="Black" TextColor="White" />
</DataTemplate>
</telerikGrid:DataGridTemplateColumn.CellContentTemplate>
</telerikGrid:DataGridTemplateColumn>
</telerikGrid:RadDataGrid.Columns>
</telerikGrid:RadDataGrid>
</StackLayout>
</ContentPage.Content>
</ContentPage>
在这里您可以看到我正在使用
private async void BtnFindBom_Clicked_1(object sender, EventArgs e)
{
string result = await dataTransFer.GetIsAliveState();
await App.Current.MainPage.Navigation.PushModalAsync(new StockScanning(txtBomId.Text));
}
显示正在设置的主页。
public App()
{
InitializeComponent();
DependencyService.Register<MockDataStore>();
MainPage = new MainPage();
}
上面的我的主页代码。
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:FuelStockApp.Views"
x:Class="FuelStockApp.Views.MainPage">
<MasterDetailPage.Master>
<views:MenuPage />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<NavigationPage.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="iOS" Value="tab_feed.png"/>
</OnPlatform>
</NavigationPage.Icon>
<x:Arguments>
<views:StockTransfer />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
答案 0 :(得分:0)
此处您使用的是 modal 导航,而不是 hierarchical 。
根据Microsoft文档:Hierarchical Navigation,它表示:
NavigationPage类提供了分层的导航体验,用户可以根据需要在页面之间进行前后导航。
要导航到页面,必须在上调用PushAsync方法 当前页面的导航属性。
因此,您必须使用console.log(fields)
方法将代码更改为PushModalAsync(...)
。