using System.Collections.ObjectModel; using CommunityToolkit.Mvvm.Messaging; using Seyounth.Hyosung.Data.Models; using Seyounth.Hyosung.Data.Services; using Wpf.Ui.Controls; namespace Seyounth.Hyosung.UI.ViewModels.Pages; public partial class PalletManagementViewModel : ObservableObject, INavigationAware { public class SavePalletCompletedMessage; [ObservableProperty] private ObservableCollection _pallets = []; private readonly IPalletService _palletService; /// public PalletManagementViewModel(IPalletService palletService) { _palletService = palletService; Pallets = new ObservableCollection(_palletService.GetPallets()); } public void OnNavigatedTo() { Pallets = new ObservableCollection(_palletService.GetPallets()); } public void OnNavigatedFrom() { } [RelayCommand] private void AddPallet() { var newPallet = new Pallet { /* 初始化默认值 */ }; Pallets.Add(newPallet); } [RelayCommand] private void OnDeletePallet(object obj) { if (obj is Pallet pallet) { Pallets.Remove(pallet); _palletService.DeletePalletAsync(pallet); } else { Console.Write("Object is not a Pallet"); } } [RelayCommand] private void OnSavePallet(object obj) { if (obj is Pallet pallet) { if (pallet.Id == 0) { var id = _palletService.AddPalletAsync(pallet).Result; //Pallets = new ObservableCollection(_palletService.GetPallets()); } else _palletService.UpdatePalletAsync(pallet); } WeakReferenceMessenger.Default.Send(new SavePalletCompletedMessage()); } }