Skip to content

Commit

Permalink
Adjust the UI.
Browse files Browse the repository at this point in the history
  • Loading branch information
yanxiaodi committed Jan 8, 2019
1 parent 094519c commit b8025b7
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 13 deletions.
@@ -1,4 +1,5 @@
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using MvvmCross.Commands;
using MvvmCross.Navigation;
Expand Down Expand Up @@ -33,20 +34,57 @@ public ObservableCollection<string> MenuItemList
#endregion


#region ShowDetailPageAsyncCommand obsoleted;
//private IMvxAsyncCommand<string> _showDetailPageAsyncCommand;
//public IMvxAsyncCommand<string> ShowDetailPageAsyncCommand
//{
// get
// {
// _showDetailPageAsyncCommand = _showDetailPageAsyncCommand ?? new MvxAsyncCommand<string>(ShowDetailPageAsync);
// return _showDetailPageAsyncCommand;
// }
//}
//private async Task ShowDetailPageAsync(string param)
//{
// // Implement your logic here.
// switch (param)
// {
// case "Contacts":
// await _navigationService.Navigate<ContactsViewModel>();
// break;
// case "Todo":
// await _navigationService.Navigate<TodoViewModel>();
// break;
// default:
// break;
// }
// if (Application.Current.MainPage is MasterDetailPage masterDetailPage)
// {
// masterDetailPage.IsPresented = false;
// }
// else if (Application.Current.MainPage is NavigationPage navigationPage
// && navigationPage.CurrentPage is MasterDetailPage nestedMasterDetail)
// {
// nestedMasterDetail.IsPresented = false;
// }
//}
#endregion


#region ShowDetailPageAsyncCommand;
private IMvxAsyncCommand<string> _showDetailPageAsyncCommand;
public IMvxAsyncCommand<string> ShowDetailPageAsyncCommand
private IMvxAsyncCommand _showDetailPageAsyncCommand;
public IMvxAsyncCommand ShowDetailPageAsyncCommand
{
get
{
_showDetailPageAsyncCommand = _showDetailPageAsyncCommand ?? new MvxAsyncCommand<string>(ShowDetailPageAsync);
_showDetailPageAsyncCommand = _showDetailPageAsyncCommand ?? new MvxAsyncCommand(ShowDetailPageAsync);
return _showDetailPageAsyncCommand;
}
}
private async Task ShowDetailPageAsync(string param)
private async Task ShowDetailPageAsync()
{
// Implement your logic here.
switch (param)
switch (SelectedMenuItem)
{
case "Contacts":
await _navigationService.Navigate<ContactsViewModel>();
Expand All @@ -68,5 +106,15 @@ private async Task ShowDetailPageAsync(string param)
}
}
#endregion


#region SelectedMenuItem;
private string _selectedMenuItem;
public string SelectedMenuItem
{
get => _selectedMenuItem;
set => SetProperty(ref _selectedMenuItem, value);
}
#endregion
}
}
Expand Up @@ -5,6 +5,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Behaviors.XamarinForms" Version="3.0.1" />
<PackageReference Include="MvvmCross" Version="6.2.2" />
<PackageReference Include="MvvmCross.Forms" Version="6.2.2" />
<PackageReference Include="Xamarin.Forms" Version="3.4.0.1008975" />
Expand Down
Expand Up @@ -5,13 +5,50 @@
xmlns:viewModels="clr-namespace:MvxFormsMasterDetailDemo.Core.ViewModels;assembly=MvxFormsMasterDetailDemo.Core"
x:Class="MvxFormsMasterDetailDemo.UI.Pages.MenuPage"
x:TypeArguments="viewModels:MenuViewModel"
x:Name="MainContent">
x:Name="MainContent"
xmlns:behaviors="clr-namespace:Behaviors;assembly=Behaviors"
Icon="hamburger.png">
<ContentPage.Content>
<StackLayout>
<ListView ItemsSource="{Binding MenuItemList}">
<StackLayout HeightRequest="40">
<StackLayout.IsVisible>
<OnPlatform x:TypeArguments="x:Boolean">
<On Platform="Android, iOS" Value="True" />
<On Platform="UWP" Value="False" />
</OnPlatform>
</StackLayout.IsVisible>
<StackLayout.Margin>
<OnPlatform x:TypeArguments="Thickness">
<On Platform="iOS" Value="0,20,0,0" />
</OnPlatform>
</StackLayout.Margin>
<Label Text="HamburgerMenu Demo" Margin="10" VerticalOptions="Center" FontSize="Large"></Label>
</StackLayout>
<ListView x:Name="MenuList" ItemsSource="{Binding MenuItemList}"
SelectedItem="{Binding SelectedMenuItem, Mode=TwoWay}">
<ListView.Behaviors>
<behaviors:EventHandlerBehavior EventName="ItemSelected">
<behaviors:InvokeCommandAction
Command="{Binding BindingContext.DataContext.ShowDetailPageAsyncCommand,
Source={x:Reference MainContent}}"></behaviors:InvokeCommandAction>
</behaviors:EventHandlerBehavior>
</ListView.Behaviors>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout HeightRequest="50">
<Label Text="{Binding}" Margin="20,0,0,0"
VerticalOptions="CenterAndExpand"></Label>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<!--<ListView ItemsSource="{Binding MenuItemList}">
<ListView.ItemTemplate>
<DataTemplate>
--><!--<TextCell Text="{Binding}" Command="{Binding BindingContext.DataContext.ShowDetailPageAsyncCommand, Source={x:Reference MainContent}}" CommandParameter="{Binding}"></TextCell>-->
<!--<ViewCell>
<StackLayout Padding="10">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer
Expand All @@ -21,10 +58,10 @@
</StackLayout.GestureRecognizers>
<Label Text="{Binding}" VerticalOptions="Center"></Label>
</StackLayout>
</ViewCell>
</ViewCell>--><!--
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ListView>-->
</StackLayout>
</ContentPage.Content>
</views:MvxContentPage>
Expand Up @@ -6,7 +6,7 @@
namespace MvxFormsMasterDetailDemo.UI.Pages
{
[XamlCompilation(XamlCompilationOptions.Compile)]
[MvxMasterDetailPagePresentation(Position = MasterDetailPosition.Master, WrapInNavigationPage = false, Title = "Menu Page")]
[MvxMasterDetailPagePresentation(Position = MasterDetailPosition.Master, WrapInNavigationPage = false, Title = "HamburgerMenu Demo")]
public partial class MenuPage : MvxContentPage<MenuViewModel>
{
public MenuPage ()
Expand Down
Expand Up @@ -201,9 +201,6 @@
<Visible>false</Visible>
</ImageAsset>
</ItemGroup>
<ItemGroup>
<BundleResource Include="Resources\hamburger%402x.png" />
</ItemGroup>
<ItemGroup>
<BundleResource Include="Resources\hamburger.png" />
</ItemGroup>
Expand Down
Binary file not shown.

0 comments on commit b8025b7

Please sign in to comment.