我正在使用Xamarin制作适用于多个平台的应用程序。该应用程序使用Mvvm结构和MvvmCross。
目前,我有各种视图模型,并且只要它们在单独的页面中就可以很好地绑定(使用MvvmCross)。
但是,我想制作一个引用多个视图模型的单个页面。例如,一个页面有几个按钮,每个按钮都绑定到不同视图模型中的方法。
我知道要做到这一点,我应该:
1)将屏幕分成不同的视图。
2)将按钮根据其视图模型分配给不同的视图。
我不确定如何分割屏幕?片段是答案吗?
另外,这是否意味着需要一个视图模型来了解页面中的所有视图模型?
我的当前解决方法是在所有页面中具有选项卡,以更改该页面的当前视图模型,如下所示:
public ICommand VM1Command
{
get { return new MvxCommand(() => ShowViewModel<ViewModel1>()); }
}
public ICommand VM2Command
{
get { return new MvxCommand(() => ShowViewModel<ViewModel2>()); }
}
public ICommand VM3Command
{
get { return new MvxCommand(() => ShowViewModel<ViewModel3>()); }
}
这看起来相当丑陋,如果有人能指导我去哪里找到解释,甚至更好地告诉我如何做,我将不胜感激。
谢谢!