Existe-t-il un exemple d'utilisation de MvvmCross avec le composant FlyoutNavigation de Xamarin?MvvmCross: Comment utiliser le composant FlyoutNavigation avec MvvmCross
Je reçois une erreur lorsque j'ai essayé de définir les ViewControllers à l'aide des vues de menu de MainNavigationViewModel. C'est l'erreur que j'ai "System.Reflection.TargetInvocationException: Exception a été levée par la cible d'une invocation."
Voici mon exemple de code:
public class MainNavigationViewModel : MvxViewModel
{
public MainNavigationViewModel()
{
MenuOne = new MenuOneViewModel();
}
private MenuOne _MenuOne;
public MenuOneViewModel MenuOne
{
get { return _MenuOne; }
set
{
_MenuOne = value;
RaisePropertyChanged(() => MenuOne);
}
}
}
[Register("MainNavigationView")]
public sealed class MainNavigationView : MvxViewController
{
protected MainNavigationViewModel MainNavViewModel
{ get { return base.ViewModel as MainNavigationViewModel; } }
public MainNavigationView()
{
ViewDidLoad();
}
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
NavigationController.NavigationBarHidden = true;
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
if (ViewModel == null)
return;
var flyoutNavigationController = new FlyoutNavigationController();
var menuViewRoot = new RootElement(null);
var menuItems = new List<StringElement>()
{
new StringElement("Menu One")
};
var menuSection = new Section("Main Menu") { menuItems };
menuViewRoot.Add(menuSection);
flyoutNavigationController.NavigationRoot = menuViewRoot;
var viewControllers = new UIViewController[1];
viewControllers[0] = CreateMenuItemController(MainNavViewModel.MainOne);
flyoutNavigationController.ViewControllers = viewControllers;
flyoutNavigationController.View.Frame = UIScreen.MainScreen.Bounds;
flyoutNavigationController.ToggleMenu();
Add(flyoutNavigationController.View);
}
private UIViewController CreateMenuItemController(IMvxViewModel viewModel)
{
var controller = new UINavigationController();
var screen = this.CreateViewControllerFor(viewModel) as UIViewController;
controller.PushViewController(screen, false);
return controller;
}
}
Hey - est-il possible de l'utiliser avec Dialog? Je vois que le code utilise un MvxTouchViewPresenter - je ne suis pas familier avec cela - le regardera aujourd'hui - se demandait si vous pouviez me donner un avantage en signalant si c'était au moins possible? – iwayneo