У меня есть два представления Add и Edit view, оба представления имеют различный пользовательский интерфейс, но одну и ту же модель представления. Используя mvvm, я установил связывающий контекст для обоих представлений как одну и ту же модель представления. Я новичок в свежем mvvm. В свежем mvvm я не знаю, как установить одну и ту же модель представления для двух представлений. Другой, я передаю параметр конструктору viewmodel, как это возможно в свежем mvvm. Пожалуйста, дайте ваше ценное предложение.
Обычно сопровождающее представление будет выводиться по именам. Но для этого варианта использования вы должны явно указать, какое представление использовать. Для этого есть метод, вы должны использовать его следующим образом:
// For adding
CoreMethods.PushPageModel<AddEditViewModel, AddView>();
// For editing
CoreMethods.PushPageModel<AddEditViewModel, EditView>();
Конечно, принимая во внимание фактические параметры, которые вам еще нужно указать для метода PushPageModel
. Кроме того, я принял названия вашей модели представления и представлений здесь, но я надеюсь, что это поможет понять.
Для тех, кто заинтересован в этом для первой страницы, которую вы загружаете в свое приложение, например, заставки, это может помочь -
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;
CoreMethods
является частью FreshMvvm. Все ваши модели представлений должны наследоваться отFreshBasePageModel
и вы переходите на разные страницы, используяCoreMethods.PushPageModel<YourViewModel>()
вместо ссылки на реальные страницы, потому что это нарушит шаблон MVVM.