iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會利用目前 Visual Studio 內建的專案樣本建立一個初始的 .NET MAUI 專案,並且透過此 .NET MAUI 專案來把 TopStore App 的開發從 Xamairn.Forms 轉換到 .NET MAUI 上進行。

本篇是 Re: 從零改成用 .NET MAUI 技術來繼續過去用 Xamarin 開發的一個 App : TopStore 系列 系列文的 EP22。


在前一回當中已經確認到在 GoodsPageBindingContext 當中會有 GoodsPageViewModel 所產生的資料物件,也能運用 App.DataService.GetGoods() 來取得 MockData 所產生的多個 Product 記錄在 goods 的部分,並能設定到其 GoodsPageViewModel 所設計的 Goods 屬性。

那接著就可以來調整呈現畫面的部分了。

找到 Pages 資料夾底下的 GoodsPage.xaml 並開啟:
01

開啟後,把原本存在此 XAML 檔案上 StackLayout 標記內部的 XAML 標記碼通通刪除:
02

刪除完畢後,準備到 ContentPage 標記當中,來增加要引入的命名空間,並且定義其型別。

ContentPage 的標記跟上方的命名空間隔出空行:
03-1

在打要引入的命名空間時,現在 Visual Studio 都會有相關的 "提醒",可以更方便的選到正確要引入的對象:
03-2

完成的標記如下:

    xmlns:viewmodels="clr-namespace:TopStoreApp.ViewModels"

03-3

接著繼續定義繫結對象的型別:
04-1

完成的標記如下:

    x:DataType="viewmodels:GoodsPageViewModel"

04-2

再來到 StackLayout 的標記當中宣告要使用 CollectionView 這個集合項目的 UI 控制項,完成的標記如下:

<CollectionView ItemSizingStrategy="MeasureFirstItem" >
</CollectionView>

05-1

設定其 ItemSource 的資料是繫結到 viewmodels:Goods,在這邊會注意到可以直接選擇先前 GoodsPageViewModel 裡所定義的 Goods 屬性(因為前面有先定義 "繫結對象的型別"):
05-2

完成的標記如下:

ItemsSource="{Binding Goods}"

05-3

存檔後會 XAML 標記會自動簡化並排版如下(因為有安裝 XAML Styler 延伸模組 就會作這樣的協助):
05-4

執行到看看,切換到 "物品項" 這個分頁時會看到如下的結果:
06

接下來就是要繼續調整 CollectionView 內部每個項目該如何呈現資料的樣子了,就下一回再繼續囉!

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



上一篇
EP 21: Add the ViewModel for GoodsPage and check Mock Data be loaded
下一篇
EP 23: Design the DataTemplate of CollectionView.ItemTemplate by SwipeView for GoodsPage
系列文
Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言