Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文會延續 Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore 使用 .NET MAUI 技術所建立的 TopStore App ,更新 .NET MAUI 在 .NET 6 轉換到 .NET 7 時所需要調整的部分,並持續地的開發 TopStore App 其他需要的功能。
本篇是 Re: 從零續用 .NET MAUI 技術開發過去的一個 App : TopStore 系列 系列文的 EP18。
如果要完成如原 TopStoreApp 執行一樣動作的效果,那就要來進行諸多調整了~~~
在 EP17 當中有描述到 "下訂單" 的第一個動作:
點選 "新增" 後,畫面會從訂單頁面切到聯絡人列表的畫面準備進行 "下訂單"。
在 EP17 已經實作完成 OrdersPage 與 OrderPageViewMode 中的 Add 方法,透過 Binding 與 AddCommand 繫結。
在 Add 方法中所要執行的程式碼,改成如下:
await Shell.Current.GoToAsync($"//Orders/People?isOrder=true");
完成結果如下圖:
若仔細觀察在 EP17 當中所提到的此動作畫面時,會發現進入到聯絡人列表時會有返回上一層的選項,並且下方的 TabBar 的選項是消失的:
所以,前述所加入的轉跳路由程式碼,是把 People 放在 Orders 路由下,並且帶入一個 isOrder 的參數。
當然,也要有存在這樣的路由對應處理,所以就打開 AppShell.xaml.cs,並在其建構方法中繼續加入以下路由註冊的程式碼:
Routing.RegisterRoute("Orders/People", typeof(Pages.PeoplePage));
完成結果如下圖:
接著繼續調整 MauiProgram.cs 原本撰寫在 RegisterAppViewsAndViewModels 方法當中:
builder.Services.AddSingleton<Pages.PeoplePage>();
builder.Services.AddSingleton<ViewModels.PeoplePageViewModel>();
改寫為:
builder.Services.AddTransient<Pages.PeoplePage>();
builder.Services.AddTransient<ViewModels.PeoplePageViewModel>();
完成結果如下圖:
而目前的調整應該已經完成如下結果:
聯絡人列表:
訂單列表:
透過訂單列表上的新增進入到聯絡人列表:
透過訂單列表上方的 "新增" 按鈕而進入的 "聯絡人列表",注意此時上方的導覽列有出現返回鈕,且下方的分頁頁籤仍保留在 "訂單" 的位置。
當然要完成到若是透過此方式進入 "聯絡人列表" 時,需要把下方的分頁頁籤給移除,而這就是下回 EP 再繼續探討的了囉~~~