Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文會利用目前 Visual Studio 內建的專案樣本建立一個初始的 .NET MAUI 專案,並且透過此 .NET MAUI 專案來把 TopStore App 的開發從 Xamairn.Forms 轉換到 .NET MAUI 上進行。
本篇是 Re: 從零改成用 .NET MAUI 技術來繼續過去用 Xamarin 開發的一個 App : TopStore 系列 系列文的 EP30。
在前一回當中已經完成讓 GoodsPage 轉跳至 ProductDetailPage 時能檢視 Product 的資料,並且也能進行修改或新增。不過,如果細心的捧友應該有發現 Product 資料當中有一個 images 的屬性欄位沒有被呈現出來,本回就來介紹這個部分囉!
首先,先找到專案底下的 "Resources" 資料夾,在此資料夾當中有先前所介紹過的 AppIcon、Fonts、Images、Raw、Splash、Styles 這幾個資料夾,提供 MauiApp 在各平台執行時的共用資源檔案。
本回的主軸在 Images 這個部分,要在這邊放入一張產品的準備圖片 "tmp.png",直接透過檔案總管拖拉圖片到 Visual Studio 2022 的方案總管當中:

完成結果如下圖紅框所示,並且注意該檔案的 "建置動作" 是否為 MauiImage:

接著要開啟 Pages 資料夾中的 "ProductDetailPage.xaml" 檔案:
找到 VerticalStackLayout 元件:

並在其 VerticalStackLayout 元件的外部,再用一個 ScrollView 元件給包起來,以便有些螢幕較小的裝置,無法顯示 Product 的所有資訊時,能夠透過滑動頁面的方式往下捲動觀看資料,如下圖紅框所示:

完成後再到 VerticalStackLayout 當中,加入以下 Image 元件的 XAML 標記:
<Image
Margin="0,10"
HorizontalOptions="FillAndExpand"
IsEnabled="{Binding IsEdit}"
Source="{Binding EditProduct.Images}"
VerticalOptions="Center" />

接著再開啟位於 Utilities 資料夾底下的 "MockData.cs" 檔案:

找到當初設計 NewProduct() 的方法:

並在產生 Product 物件時的屬性初始值除了 Id 設定外,也要幫 Images 屬性設定其初始值:
, Images= "tmp.png"
完成的結果如下圖紅框所示:

完成後其執行結果如下:
點選 "物品項" 頁面導覽列右上角的 "新增" 按鈕,直接轉跳到 ProductDetailPage 並且可以開始編輯 "新商品" 的資料:

點選 "物品項" 頁面列表中的某個商品,直接轉跳到 ProductDetailPage 並且帶入該 "商品" 的資料呈現詳細資訊:

由於有 Image 的顯示預設的商品準備圖 "tmp.png",所以整體的商品資料就相對的佔據比較長的版面,因此本回介紹中所加上的 ScrollView 就可以發揮其作用了:

本 EP 介紹所完成的範例程式碼可在此下載。