C# 如何在MasterDetailPage表单中插入方法

C# 如何在MasterDetailPage表单中插入方法,c#,xamarin.forms,C#,Xamarin.forms,我有一个masterdetailpage,里面有注销功能(因此导航到其他页面时会显示显示警报),但我不知道如何在masterdetailpage中插入注销方法,我已经尝试使用ICommand,但它似乎不起作用,并使我的应用程序强制关闭。 这是我的MasterPageItem模型 public class MasterPageItem { public string Title { get; set; } public string Icon { get;

我有一个masterdetailpage,里面有注销功能(因此导航到其他页面时会显示显示警报),但我不知道如何在masterdetailpage中插入注销方法,我已经尝试使用ICommand,但它似乎不起作用,并使我的应用程序强制关闭。 这是我的MasterPageItem模型

 public class MasterPageItem
    {
        public string Title { get; set; }
        public string Icon { get; set; }
        public Type TargetType { get; set; }
        public ICommand Commando { get; set; }



    }
这是MasterDetailPage的列表视图

 <ListView x:Name="navigationDrawerList"
                  RowHeight="45"
                  SeparatorVisibility="None"
                  BackgroundColor="#000000"
                  ItemSelected="OnMenuItemSelected">

                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>

                                <!-- Main design for our menu items -->
                                <StackLayout BackgroundColor="#000000" VerticalOptions="FillAndExpand"
                             Orientation="Horizontal"
                             Padding="20,10,0,10"
                             Spacing="20">

                                    <Image Source="{Binding Icon}"
                         WidthRequest="60"
                         HeightRequest="60"
                         VerticalOptions="Center" />

                                    <Label FontFamily="Panton-LightCaps.otf#Panton-LightCaps" Text="{Binding Title}"
                         FontSize="Medium"
                         VerticalOptions="Center"
                         TextColor="White"/>
                                </StackLayout>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
是否有其他方法在MasterdetailPage中插入方法?如有任何建议,将不胜感激 您可以将页脚添加到listview,并将轻触手势识别器附加到它,如下所示:

<ListView.Footer>
    <StackLayout BackgroundColor="#000000" 
                VerticalOptions="FillAndExpand"
                Orientation="Horizontal"
                Padding="20,10,0,10"
                Spacing="20">
        <StackLayout.GestureRecognizers>
            <TapGestureRecognizer Command="{Binding LogoutCommand}" />
        </StackLayout.GestureRecognizers>

        <Image Source="YourIcon"
        WidthRequest="60"
        HeightRequest="60"
        VerticalOptions="Center" />

        <Label FontFamily="Panton-LightCaps.otf#Panton-LightCaps" 
        Text="{Binding Title}"
        FontSize="Medium"
        VerticalOptions="Center"
        TextColor="White"/>
    </StackLayout>
</ListView.Footer>
private void OnMenuItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    var item = e.SelectedItem as MasterPageItem;
    if (item == null)
        return;

    //  Check if sign out was tapped
    if (item.TargetType != null)
    {
        var page = (Page)Activator.CreateInstance(item.TargetType);
        page.Title = item.Title;

        Detail = new NavigationPage(page);
        IsPresented = false;
    }
    else
    {
        //  Manage your sign out action
        var result = await this.DisplayAlert("Alert!", "Do you really want to exit?", "Yes", "No");
        if (result == true)
        {
            App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID);
            Application.Current.MainPage = new NavigationPage(new NewPageLogin());
        }
    }
}

我不明白你想干什么。您是否正在插入一个按钮,按下该按钮时执行
LogoutCommand()
?我试图在masterdetailpage的listview中插入命令,而我的列表视图中没有使其变硬的按钮您不能在DataTemplate的
StackLayout
中插入一个按钮控件吗?
private void OnMenuItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    var item = e.SelectedItem as MasterPageItem;
    if (item == null)
        return;

    //  Check if sign out was tapped
    if (item.TargetType != null)
    {
        var page = (Page)Activator.CreateInstance(item.TargetType);
        page.Title = item.Title;

        Detail = new NavigationPage(page);
        IsPresented = false;
    }
    else
    {
        //  Manage your sign out action
        var result = await this.DisplayAlert("Alert!", "Do you really want to exit?", "Yes", "No");
        if (result == true)
        {
            App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID);
            Application.Current.MainPage = new NavigationPage(new NewPageLogin());
        }
    }
}