如何在mvvmcross中为不同的视图模型使用一个视图?

时间:2018-03-02 19:03:05

标签: xamarin mvvmcross

我有许多具有不同业务逻辑的屏幕,但它们看起来很相似。我想为ios(storyboard或xib)和一个MvxViewController创建一个屏幕,但是有许多不同的(共享)视图模型。 我找不到一个正确的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

实现它的一种方法是使用一个带有通用参数的基本视图作为您的视图模型,并根据需要从该视图中继承多个视图,并在每个视图上设置通用参数上的相应视图模型

public abstract class MyBaseViewController<TViewModel> :  MvxViewController<TViewModel>
{
     // My view init and logic
}

public class MyView1 : MyBaseViewController<MyViewModel1> {}

public class MyView2 : MyBaseViewController<MyViewModel2> {}

等等。

另一种更困难的方法是修改您的演示者,以便在每次显示新的ViewModel时使用不同的视图模型创建新视图

HIH