获得清晰的观点。 我正在使用MvvMCross和UWP。
父模型
public class TabHost : MvxViewModel
{
private IList<TabPage> _tabPages;
public IList<TabPage> TabPages
{
get { return _tabPages; }
set
{
_tabPages = value;
RaisePropertyChanged(() => TabPages);
}
}
}
TabPage对象
public class TabPage
{
public string Title {get;set;}
public Type ViewModelType {get;set;}
}
我创建了一个名为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>
我的正确显示标题的标签页。但是我希望视图的内容加载到PivotItem中。
是否可以为PivotItem设置视图? (使用MvvmCross offcourse!) 或者通过dataitem模板的格式推送内容?
答案 0 :(得分:0)
你为什么使用框架?
您可以使用ContentControl来显示页面,但这并不容易。
我在使用其他框架之前做过,但它可能类似:
您可以使用ContentControl和行为 在Behavior中,只需创建一个属性,它就可以是您要在其中显示的视图页面的名称,在代码中创建视图的实例以及视图的视图模型,使用View和ViewModel进行绑定(使用DataContext property)最后在ContentControl的内容中注入此视图。
如果你真的想使用Frame,解决方案非常相似。