Xamarin 嵌套选项卡视图未绑定到单独的ViewModel

Xamarin 嵌套选项卡视图未绑定到单独的ViewModel,xamarin,mvvm,xamarin.forms,prism,tabbedpage,Xamarin,Mvvm,Xamarin.forms,Prism,Tabbedpage,我想将viewmodel绑定到xamarin prism框架中的嵌套选项卡视图 我创建了4个主页(A、B、C、D)作为主选项卡,在第一个选项卡内部(A)我又创建了两个选项卡(A1、A2)。但是嵌套选项卡的数据没有绑定。甚至视图(A1、A2)的viewmodel也没有绑定 MenuPage.xml <?xml version="1.0" encoding="utf-8" ?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/

我想将viewmodel绑定到xamarin prism框架中的嵌套选项卡视图

我创建了4个主页(A、B、C、D)作为主选项卡,在第一个选项卡内部(A)我又创建了两个选项卡(A1、A2)。但是嵌套选项卡的数据没有绑定。甚至视图(A1、A2)的viewmodel也没有绑定

MenuPage.xml

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage  xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MyApp.Views.MenuPage"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             xmlns:b="clr-namespace:Prism.Behaviors;assembly=Prism.Forms"

             prism:ViewModelLocator.AutowireViewModel="True" 
              xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
             xmlns:views="clr-namespace:MyApp.Views"

                BarBackgroundColor="White"
             android:TabbedPage.ToolbarPlacement="Bottom"
             NavigationPage.HasNavigationBar="True">

    <TabbedPage.Children>
        <views:A Title="A" Icon="abc.png" />
        <views:B Title="B" Icon="abc.png" />
        <views:C Title="C" Icon="abc.png" />
        <views:D Title="D" Icon="abc.png"/>
    </TabbedPage.Children>
</TabbedPage>

我的页面A是这样的

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:views="clr-namespace:MyApp.Views"
             x:Class="MyApp.Views.A">
    <!--Pages can be added as references or inline-->
    <TabbedPage.Children>
    <views:A1 Title="A1" />
    <views:A2 Title="A2" />

        </TabbedPage.Children>
</TabbedPage>

对于A1和A2,我有单独的viewmodel


因此,如果我直接将A1绑定到主导航页面,它将正常工作并呈现数据。但是如果我喜欢上面的viewmodel for A1,则不会影响构造函数,除了静态数据之外,不会显示任何内容。我不熟悉选项卡式页面导航。非常感谢任何帮助。这是我尝试实现的视图

,我发现我们应该添加它
AutowireViewModel
在页面的XAML中加载所需的视图模型:

xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
prism:ViewModelLocator.AutowireViewModel="True"
通常,我们使用
containerRegistry.RegisterForNavigation()
将自定义视图模型绑定到特定视图。但是您在根选项卡式页面中放置了一个子选项卡式页面。这导致嵌套视图丢失到相应视图模型的映射。添加了
AutowireViewModel
后,此问题已得到解决。我们仍然可以使用
registerbornavigation
将自定义视图模型绑定到特殊视图,而不是自动命名对话

以下是我的简单嵌套选项卡式页面示例:。有关更详细的代码,请参阅


此外,这只适用于Android平台,因为iOS只有底部对齐的选项卡栏。

您有什么要求?为什么需要嵌套选项卡页@G.hakim我在我的问题中添加了我想要实现的图像。我不认为这些是嵌套的选项卡视图@G.hakim您对如何实现这一点有什么建议吗?您可以在网格中创建上述内容,并可以在单击时将contentview添加到网格谢谢您的回复和示例代码。这就是我一直在寻找的。只有一件事是如何将活动导航条置于顶部。我尝试了“但没有”working@ebk“导航栏在顶部”是什么意思?您正在操作哪个选项卡式页面?@Land Lu-MSFT正如您可以看到我保留在顶部的图像一样,我需要一个显示徽标的部分,该徽标应用于第一个主选项卡。顶部的导航栏表示保留所有主选项卡共有的工具栏项。如子选项卡2示例中的主导航。@ebk如果您的原始项已修复。您可以打开一个新线程,在那里指定您的需求。我们可以在那里谈。如果你觉得这对你有帮助,请接受它作为一个答案。诽谤我会让这个答案被接受。对你来说,这只是时间问题。请帮助我