簡體   English   中英

如何在 xamarin 形式的新 mvvm 中將相同的視圖模型設置為兩個視圖

[英]How to set same viewmodel to two views in fresh mvvm in xamarin forms

我有兩個視圖 Add 和 Edit 視圖這兩個視圖都是不同的 UI 但相同的視圖模型。 通過使用 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM