如何将 Xamarin Forms Shell 集成到 MvvmCross 设置中

How to integrate Xamarin Forms Shell into an MvvmCross setup

我打算将 Xamarin Forms 与 MvvmCross 一起使用。

根据他们的tutorial,需要将App.cs文件添加到项目中:

 public class App : MvxApplication
  {
    public override void Initialize()
    {
      //Mvx.IoCProvider.RegisterType<ICalculationService, CalculationService>();

      RegisterAppStart<MainViewModel>();
    }
  }

那么原来的App.xaml.cs可以作为MvxFormsApplication class:

public partial class FormsApp : MvxFormsApplication
{
  public FormsApp()
  {
    InitializeComponent();
    //DependencyService.Register<MockDataStore>();
    MainPage = new AppShell();
  }
}

不幸的是 AppShell.xamlAppShell.xaml.cs 文件添加了很多必要的 UI 设置代码,它最初是由 App.xaml.cs:

添加的
 MainPage = new AppShell();

由于 MvvmCross 接管了整个初始化,我不知道如何集成弹出窗口和其他基本 UI 代码。

如果我像这样将它们放在主视图中:

<views:MvxContentPage.Content>
  <FlyoutItem Title="About" Icon="icon_about.png">
    <ShellContent Route="AboutPage" ContentTemplate="{DataTemplate local:AboutPage}" />
  </FlyoutItem>

我收到一些层次错误:

Content does not support values of type 'FlyoutItem'

那么我应该如何将 Shell 集成到 MvvmCross 应用程序中?

MvvmCross 目前不支持 Xamarin.forms.Shell

有关详细信息,请在 GitHub 存储库中查看 related issue