iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

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 系列 系列文的 EP16。


延續 EP15 繼續完成 IDataService、DataService 與 MockData 的處理。

而按照前面 EP 的介紹,大概也知道接下來要開啟 Services 底下的 IDataService 並增加其方法:

Models.OrderDetailShow GetOrderDetailShow(int orderDetilId);

完成結果如下圖:
01

接著再打開 DataService、MockData 這兩個實作 IDataService 的類別,完成其介面方法實作:

DataService:

public Models.OrderDetailShow GetOrderDetailShow(int orderDetilId)
{
    throw new NotImplementedException();
}

完成結果如下圖:
02

MockData:

public Models.OrderDetailShow GetOrderDetailShow(int orderDetilId)
{
    var orderDetailShow = from orderDetail in orderDetails
                            join product in goods on orderDetail.ProductId equals product.Id
                            where orderDetail.Id == orderDetilId
                            select new Models.OrderDetailShow
                            {
                                OrderDetailId = orderDetail.Id,
                                ProductSn = product.Sn,
                                ProductPrice = product.Price,
                                ProductName = product.Name,
                                Quantity = orderDetail.Quantity,
                                Price = orderDetail.Price,
                                Note = orderDetail.Note
                            };
    return orderDetailShow.FirstOrDefault();
}

完成結果如下圖:
03

為了讓 OrderDetailShowPageViewModel 能透過參數注入到 OrderDetailShowPage 當作繫結資料,到 Pages 底下找到 OrderDetailShowPage.xaml.cs 並增加傳參數的建構式:

public OrderDetailShowPage(ViewModels.OrderDetailShowPageViewModel orderDetailShowPageViewModel) : this()
{
    BindingContext = orderDetailShowPageViewModel;
}

對了,別忘記改無參數建構式的修飾詞。

完成結果如下圖:
04

最後,除了再打開 MauiProgram.cs 在 RegisterAppViewsAndViewModels 方法中增加:

builder.Services.AddTransient<Pages.OrderDetailShowPage>();
builder.Services.AddTransient<ViewModels.OrderDetailShowPageViewModel>();    

完成結果如下圖:
05

也記得把之前設計 OrderDetailShowPageViewModel 當中的 OrderDetailId 所註解的程式碼移除註解。

完成結果如下圖:
06

執行相關結果:
07


上一篇
EP15
下一篇
EP17
系列文
Re: 從零續用 .NET MAUI 技術開發過去的一個 App : TopStore 系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言