如何将相同的viewmodel设置为xamarin表单中的新mvvm中的两个视图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将相同的viewmodel设置为xamarin表单中的新mvvm中的两个视图相关的知识,希望对你有一定的参考价值。
我有两个视图添加和编辑视图两个视图是不同的UI但相同的viewmodel。通过使用mvvm,我将两个视图的绑定上下文设置为相同的viewmodel。我是新手mvvm的新手。在新的mvvm中,我不知道如何将相同的viewmodel设置为两个视图。另一个是,我将参数传递给viewmodel构造函数,在新的mvvm中它是如何实现的。请提出宝贵的建议。
通常,附带的视图将由名称推断。但对于此用例,您应明确提及要使用的视图。有一种方法,您应该能够像这样使用它:
// For adding
CoreMethods.PushPageModel<AddEditViewModel, AddView>();
// For editing
CoreMethods.PushPageModel<AddEditViewModel, EditView>();
当然,考虑到您仍需要为PushPageModel
方法指定的实际参数。此外,我在这里假设了您的视图模型和视图的名称,但我希望它能够解决问题。
对于那些对您在应用中加载的第一页感兴趣的人,例如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;
以上是关于如何将相同的viewmodel设置为xamarin表单中的新mvvm中的两个视图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Xamarin 和 Autofac 将构造函数依赖项注入 ViewModel?
如何绑定到CarouselView(Xamarin.Forms)(MVVM)内部的ViewModel元素?
Xamarin.Forms 无法通过 ViewModel 将 ObservableCollection 绑定到 CollectionList
如何使用 Xamarin.Forms.DependencyService 注入具有构造函数注入的 ViewModel