如何将相同的viewmodel设置为xamarin表单中的新mvvm中的两个视图

问题描述 投票:2回答:2

我有两个视图添加和编辑视图两个视图是不同的UI但相同的viewmodel。通过使用mvvm,我将两个视图的绑定上下文设置为相同的viewmodel。我是新手mvvm的新手。在新的mvvm中,我不知道如何将相同的viewmodel设置为两个视图。另一个是,我将参数传递给viewmodel构造函数,在新的mvvm中它是如何实现的。请提出宝贵的建议。

Exception thrown in root level page

c# xamarin.forms freshmvvm
2个回答
2
投票

通常,附带的视图将由名称推断。但对于此用例,您应明确提及要使用的视图。有一种方法,您应该能够像这样使用它:

// For adding
CoreMethods.PushPageModel<AddEditViewModel, AddView>();

// For editing
CoreMethods.PushPageModel<AddEditViewModel, EditView>();

当然,考虑到您仍需要为PushPageModel方法指定的实际参数。此外,我在这里假设了您的视图模型和视图的名称,但我希望它能够解决问题。


0
投票

对于那些对您在应用中加载的第一页感兴趣的人,例如Splash屏幕,这可能会有所帮助 -

Page page;
if (Xamarin.Forms.Device.Idiom == TargetIdiom.Tablet)
{
    page = FreshPageModelResolver.ResolvePageModel<SplashPageModel>();
}
else
{
    // We will load our phone only splash screen
    page = new SplashPagePhone();
    FreshPageModelResolver.BindingPageModel(null, page, new SplashPageModel(FreshIOC.Container.Resolve<DataService>()));
}

var navContainer = new FreshMvvm.FreshNavigationContainer(page)
{
    BarTextColor = Color.White
};
MainPage = navContainer;
© www.soinside.com 2019 - 2024. All rights reserved.