如何将 Xamarin Forms Shell 集成到 MvvmCross 设置中
Posted
技术标签:
【中文标题】如何将 Xamarin Forms Shell 集成到 MvvmCross 设置中【英文标题】:How to integrate Xamarin Forms Shell into an MvvmCross setup 【发布时间】:2021-07-01 06:44:32 【问题描述】:我打算将 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
类:
public partial class FormsApp : MvxFormsApplication
public FormsApp()
InitializeComponent();
//DependencyService.Register<MockDataStore>();
MainPage = new AppShell();
不幸的是AppShell.xaml
和AppShell.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>
我遇到了一些层级错误:
内容不支持“FlyoutItem”类型的值
那么我应该如何将 Shell 集成到 MvvmCross 应用程序中呢?
【问题讨论】:
似乎不支持。 github.com/MvvmCross/MvvmCross/issues/3778 【参考方案1】:MvvmCross
目前不支持Xamarin.forms.Shell
。
有关更多信息,请查看其 GitHub 存储库中的 related issue。
【讨论】:
这篇文章可以作为评论,对吧? @AbhishekGurjar 这看起来像是对我的回答。否定(告诉某人某事是不可能的)仍然是一个答案。 @MarkRotteveel hmm 承认,但我认为如果 op 没有提供任何替代解决方案作为答案,这可能适合作为评论。 @AbhishekGurjar 好吧,这个问题没有替代解决方案。这是事实,它至今不支持。 @AbhishekGurjar 没有解决方法并不能成为评论,它仍然是一个答案。如果您认为某件事的答案不好,那么正确的“回应”是投反对票。评论是为了要求澄清,建议改进问题(或答案)或切线观察。另见Is “this is not possible” an acceptable answer?以上是关于如何将 Xamarin Forms Shell 集成到 MvvmCross 设置中的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms Shell 将数据传递到弹出项视图
Xamarin.Forms.Shell:如何获取底部 TabBar 高度?
Xamarin.Forms Shell 如何在路由导航中向字符串注入多个不同的值
在 Xamarin.Forms Shell 中隐藏 tabbedPage 的标题
如何向 Xamarin Forms App Shell Tabbar 添加顶部边框
如何使用 xamarin.forms-shell 在 XAML 中动态绑定类型为 <ShellContent> 的 Tab.Items 列表