C# 在Xamarin(visual studio)PCL项目中的视图之间导航

C# 在Xamarin(visual studio)PCL项目中的视图之间导航,c#,forms,button,xamarin,onclick,C#,Forms,Button,Xamarin,Onclick,我找不到在按钮上实现onClick事件的方法,该按钮将允许应用程序在登录和第二个视图之间导航 class LoginViewModel { private async Task SecondView_Click() { App.Current.MainPage = new NavigationPage(new SecondView()); } } 我该怎么做 这就是我所做的 我在LoginViewModel.cs文件中创建了一个方法,

我找不到在按钮上实现onClick事件的方法,该按钮将允许应用程序在登录和第二个视图之间导航

 class LoginViewModel
{
 private async Task SecondView_Click()
        {
            App.Current.MainPage = new NavigationPage(new SecondView());
        }
}
我该怎么做

这就是我所做的

我在LoginViewModel.cs文件中创建了一个方法,该方法应将我重定向到第二个视图

 class LoginViewModel
{
 private async Task SecondView_Click()
        {
            App.Current.MainPage = new NavigationPage(new SecondView());
        }
}
然后我在Login.cs中定义了BindingContext

 public partial class Login : ContentPage
    {
        public Login()
        {
            InitializeComponent();
            BindingContext = new LoginViewModel();
        }
    }
然后我在Login.xaml中定义一个按钮,该按钮具有绑定命令属性

 <StackLayout
        VerticalOptions="CenterAndExpand">
        <Entry StyleId="UsernameEntry"
               Placeholder="Username"
               Text="{Binding Username}" />
        <Entry StyleId="PasswordEntry"
               Placeholder="password"
               Text="{Binding Password}" />
        <Button 
            StyleId="btn_connexion"
            Text="Connexion"
            Command="{Binding connexion}" />
        <Button 
            StyleId="btn_testSecondView"
            Text="Test 2nd View"
                Command="{Binding SecondView_Click}"></Button>
    </StackLayout>

以下是我所做的

我发现该提示符上有一个“clicked”属性,它是一个带有“新事件处理程序”的intellisense下拉列表

这是一个PCL项目,因此很难找到正确的信息,因为你在互联网上找到的所有信息都与ios/android解决方案有关,而不是便携式解决方案。

这对我来说很有效

第1页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="TestRelativeLayout.MyPage1"
             Title="TabbedPage">
             <StackLayout>
                <Button Clicked="Handle_Clicked" Text = "Press">

        </Button>
    </StackLayout>
</ContentPage>
设法除去

private async Task
和使用

void

private async Task SecondView_Click()
        {
            App.Current.MainPage = new NavigationPage(new SecondView());
        }

哪一个是错误?没有错误,当我点击它时,它不会切换到第二个视图。我可能没有很好地实现这个方法,但我不知道正确的方法是什么。App.Current.MainPage=new NavigationPage(new SecondView());如果在此处设置断点,则已达到?不,未达到。我一直在寻找另一个属性,它看起来像命令一,但到目前为止什么都没有。
private async Task
void

private async Task SecondView_Click()
        {
            App.Current.MainPage = new NavigationPage(new SecondView());
        }