Xaml 使用具有视图的数据透视项透视UWP

Xaml 使用具有视图的数据透视项透视UWP,xaml,xamarin,uwp,mvvmcross,uwp-xaml,Xaml,Xamarin,Uwp,Mvvmcross,Uwp Xaml,以获得清晰的视野。 我将MvvMCross与UWP一起使用 父模型 public class TabHost : MvxViewModel { private IList<TabPage> _tabPages; public IList<TabPage> TabPages { get { return _tabPages; } set { _tabPages = value;

以获得清晰的视野。 我将MvvMCross与UWP一起使用

父模型

public class TabHost : MvxViewModel
{
    private IList<TabPage> _tabPages;
    public IList<TabPage> TabPages
    {
        get { return _tabPages; }
        set
        {
            _tabPages = value;
            RaisePropertyChanged(() => TabPages);
        }
    }
}
我创建了一个名为TabControl的Pivot覆盖,因此我的xaml如下:

<controls:TabControl x:Name="TabHostControl" ItemsSource="{Binding TabPages}">
    <controls:TabControl.HeaderTemplate>
        <DataTemplate>
             <TextBlock Text="{Binding Title}" Foreground="White"/>
        </DataTemplate>
    </controls:TabControl.HeaderTemplate>
    <controls:TabControl.ItemTemplate>
        <DataTemplate>
            <Frame x:Name="ViewToLoad" />
        </DataTemplate>
    </controls:TabControl.ItemTemplate>
</controls:TabControl>

正确显示了带有标题的选项卡页。但是,我希望视图的内容加载到数据透视项中

  • 我在渲染时尝试在每个项目中导航到视图,但是 没用
  • 还尝试(在渲染时)设置内容。我能够创造 查看并绑定ViewModel,但在设置内容时,仅会 显示对象的名称,而不是xaml控件的名称
  • 并尝试使用UserControls,但每个视图都有自己的上下文,因此根本不起作用
是否可以为数据透视项设置视图?(使用MvvmCross offcourse!)
或者通过dataitem模板的格式推送内容?

为什么要使用框架

您可以使用ContentControl来显示页面,但这样做并不容易

我在使用其他框架之前做过,但可能类似:

您可以使用ContentControl和Behaviors 在行为中,只需创建一个属性,它可以是要在内部显示的视图页面的名称,在代码中创建视图的实例和视图的viewmodel,与视图和viewmodel进行绑定(使用DataContext属性),最后将此视图注入ContentControl的内容中


如果您真的想使用框架,那么解决方案非常类似

谢谢你的回复,我明天会试试看。让你知道它是否有效!
<controls:TabControl x:Name="TabHostControl" ItemsSource="{Binding TabPages}">
    <controls:TabControl.HeaderTemplate>
        <DataTemplate>
             <TextBlock Text="{Binding Title}" Foreground="White"/>
        </DataTemplate>
    </controls:TabControl.HeaderTemplate>
    <controls:TabControl.ItemTemplate>
        <DataTemplate>
            <Frame x:Name="ViewToLoad" />
        </DataTemplate>
    </controls:TabControl.ItemTemplate>
</controls:TabControl>