public HomeMasterView(HomeViewModel viewModel)
        {
            Icon = "slideout.png";
            BindingContext = viewModel;

            var layout = new StackLayout { Spacing = 0 };

            var label = new ContentView
            {
                //left, top, right, bottom
                Padding = new Thickness(10, 36, 0, 5),
                BackgroundColor = Color.Transparent,
                Content = new Label
                {
                    Text = "MENU",
                    FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label))
                }
            };

            layout.Children.Add(label);

            var listView = new ListView();

            DataTemplate cell;

            if (Device.OS == TargetPlatform.WinPhone)
            {
                cell = new DataTemplate(typeof(FancyListCell));
                BackgroundColor = Color.FromHex("#CCCCCC");
            }
            else
            {
                cell = new DataTemplate(typeof(ListImageCell));
                cell.SetBinding(TextCell.TextProperty, BaseViewModel.TitlePropertyName);
                cell.SetBinding(ImageCell.ImageSourceProperty, "Icon");
            }

            listView.ItemTemplate = cell;

            listView.ItemsSource = viewModel.MenuItems;
            if (_home == null)
                _home = new HomePage();

            PageSelection = _home;
            //change to correct page
            listView.ItemSelected += (sender, args) =>
            {
                var menuItem = listView.SelectedItem as HomeMenuItem;
                _menuType = menuItem.MenuType;
                switch (menuItem.MenuType)
                {
                    case MenuType.Home:
                        if (_home == null)
                            _home = new HomePage();

                        PageSelection = _home;
                        break;
                    case MenuType.Car:
                        if (_car == null)
                            _car = new CarPage();

                        PageSelection = _car;
                        break;
                    case MenuType.Truck:
                        if (_truck == null)
                            _truck = new TruckPage();

                        PageSelection = _truck;
                        break;
                    case MenuType.Suv:
                        if (_suv == null)
                            _suv = new SuvPage();

                        PageSelection = _suv;
                        break;
                }
            };

            listView.SelectedItem = viewModel.MenuItems[0];
            layout.Children.Add(listView);

            Content = layout;
        }
        public HomeView()
        {
            pages = new Dictionary<MenuType, NavigationPage>();
            BindingContext = new HomeViewModel();

            Master = _master = new HomeMasterView(ViewModel);

            var homeNav = new NavigationPage(_master.PageSelection)
            {
                BarBackgroundColor = Color.FromHex("#3498DB"),
                BarTextColor = Color.White
            };
            Detail = homeNav;

            pages.Add(MenuType.Home, homeNav);

            _master.PageSelectionChanged = async menuType =>
            {

                if (Detail != null && Device.OS == TargetPlatform.WinPhone)
                {
                    await Detail.Navigation.PopToRootAsync();
                }

                NavigationPage newPage;
                if (pages.ContainsKey(menuType))
                {
                    newPage = pages[menuType];
                }
                else
                {
                    newPage = new NavigationPage(_master.PageSelection)
                    {
                        BarBackgroundColor = Color.FromHex("#3498DB"),
                        BarTextColor = Color.White
                    };
                    pages.Add(menuType, newPage);
                }
                Detail = newPage;
                Detail.Title = _master.PageSelection.Title;
                if (Device.Idiom != TargetIdiom.Tablet)
                    IsPresented = false;
            };

            Icon = "slideout.png";
        }