创建项目
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;
}