Xamarin.Forms Hello word

  1. 创建项目

XMD1右键-》添加-》新建项目

MDPage:MasterDetailPage

主窗体,导航与明细的布局窗体。

指定MenuPage.xaml 作为Master

<?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="XMD1.Page.MenuPage"

Title="MenTitle"

BackgroundColor="#53ba9d">

<ContentPage.BackgroundColor>

<OnPlatform x:TypeArguments="Color"

Android="#F5F5F5" />

</ContentPage.BackgroundColor>

<ContentPage.Content>

<ListView x:Name="EmployeeView">

<ListView.ItemTemplate>

<DataTemplate>

<TextCell Text="{Binding DisplayName}" />

</DataTemplate>

</ListView.ItemTemplate>

</ListView>

</ContentPage.Content>

</ContentPage>

指定ListView作为导航窗体

添加行选择事件

//行选择事件

this.EmployeeView.ItemSelected += (sender, e) =>

{

if (EmployeeView.SelectedItem == null)

return;

 

root.NavigateAsync(((PageTypeGroup)e.SelectedItem).DisplayName);//((HomeMenuItem)e.SelectedItem).MenuType

};

MDPage 事件NavigateAsync初始化窗体事件

/// <summary>

/// 导航窗体

/// </summary>

/// <param name="displayName"></param>

internal async void NavigateAsync(string displayName)

{

NavigationPage newPage;

if (!Pages.Any(p => p.Key.Equals(displayName)))

{

switch (displayName)

{

case "DataGridPage":

var tpage = new NavigationPage(new DataGridPage());

Pages.Add(displayName, tpage);

break;

}

}

newPage = Pages[displayName];

if (newPage == null)

return;

 

//pop to root for Windows Phone

if (Detail != null && Device.OS == TargetPlatform.WinPhone)

{

await Detail.Navigation.PopToRootAsync();

}

 

Detail = newPage;

 

if (Device.Idiom != TargetIdiom.Tablet)

IsPresented = false;

}

原文地址:https://www.cnblogs.com/sephiroth-wzc/p/5374282.html