using BBWY.Client.APIServices; using BBWY.Client.Models; using GalaSoft.MvvmLight.Command; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Windows.Input; namespace BBWY.Client.ViewModels { public class BatchPurchaseAddProductSkuViewModel : BaseVM { private BatchPurchaseService batchPurchaseService; private string sku; private string spu; private Purchaser selectedPurchaser; private Purchaser defaultPurchaser; private KVModel selectedPurchasePlatform; private KVModel defaultPurchasePlatform; public ICommand SearchCommand { get; set; } public ICommand FilterCommand { get; set; } public string Sku { get => sku; set { Set(ref sku, value); } } public string Spu { get => spu; set { Set(ref spu, value); } } public IList PurchaserList { get; set; } public IList PurchasePlatformList { get; set; } public Purchaser SelectedPurchaser { get => selectedPurchaser; set { if (Set(ref selectedPurchaser, value)) OnFilterChanged(); } } public KVModel SelectedPurchasePlatform { get => selectedPurchasePlatform; set { if (Set(ref selectedPurchasePlatform, value)) OnFilterChanged(); } } public IList SourceList { get; set; } public IList FilterList { get; set; } public BatchPurchaseAddProductSkuViewModel(BatchPurchaseService batchPurchaseService) { this.batchPurchaseService = batchPurchaseService; defaultPurchaser = new Purchaser() { Id = "-1", Name = "全部" }; defaultPurchasePlatform = new KVModel() { Key = "-1", Value = "全部" }; PurchaserList = new ObservableCollection() { defaultPurchaser }; PurchasePlatformList = new ObservableCollection() { defaultPurchasePlatform, new KVModel(){ Key=((int)Platform.拳探).ToString(),Value = Platform.拳探.ToString() }, new KVModel(){ Key=((int)Platform.阿里巴巴).ToString(),Value = Platform.阿里巴巴.ToString() } }; SourceList = new List(); FilterList = new List(); SelectedPurchaser = PurchaserList[0]; SelectedPurchasePlatform = PurchasePlatformList[0]; SearchCommand = new RelayCommand(Search); FilterCommand = new RelayCommand(Filter); } private void OnFilterChanged() { if (SourceList.Count() == 0) return; FilterList.Clear(); var resultList = new List(); resultList.AddRange(SourceList); if (SelectedPurchaser.Id != "-1") { for (var i = 0; i < resultList.Count(); i++) { if (resultList[i].PurchaserId != SelectedPurchaser.Id) { resultList.Remove(resultList[i]); i--; } } } if (SelectedPurchasePlatform.Key != "-1") { for (var i = 0; i < resultList.Count(); i++) { if (resultList[i].PurchasePlatform != (Platform)int.Parse(SelectedPurchasePlatform.Key)) { resultList.Remove(resultList[i]); i--; } } } if (resultList.Count() > 0) { foreach (var item in resultList) FilterList.Add(item); } } private void Search() { } private void Filter() { } } }