|
- using BPASmartClient.CustomResource.Pages.Model;
- using BPA.Helper;
- using BPASmartClient.JXJFoodBigStation.Model;
- using BPA.Helper;
-
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace BPASmartClient.JXJFoodBigStation.ViewModel
- {
- internal class SelectRecipesViewModel:NotifyBase
- {
- public SelectRecipesViewModel()
- {
- AllRecipes = new();
- SelectRecipes.Clear();
- foreach (var item in Json<LocalRecipe>.Data.SelectedRecipes)
- {
- SelectRecipes.Add(item);
- }
-
- if (Json<LocalRecipe>.Data.Recipes != null)
- {
- foreach (var item in Json<LocalRecipe>.Data.Recipes)
- {
- AllRecipes.Add(new RecipeDataWithCheck()
- {
- Recipe = item,
- IsSelected = SelectRecipes.Any(p => p.RecipeCode == item.RecipeCode)
- });
- }
- }
-
-
- ConfirmCommand = new(() =>
- {
- RefreshSelected();
- ActionManage.GetInstance.Send("CloseSelectRecipesView");
- });
-
- CancelCommand = new(() =>
- {
- ActionManage.GetInstance.Send("CloseSelectRecipesView");
- });
-
- AllSelectCommand = new(() =>
- {
- foreach (var item in AllRecipes)
- {
- item.IsSelected = true;
- }
- });
-
- AllCancelCommand = new(() =>
- {
- foreach (var item in AllRecipes)
- {
- item.IsSelected = false;
- }
- });
-
- }
-
- private void RefreshSelected()
- {
- SelectRecipes.Clear();
- foreach (var item in AllRecipes)
- {
- if (item.IsSelected==true)
- {
- SelectRecipes.Add(item.Recipe);
- }
- }
- }
-
- public ObservableCollection<RecipeDataWithCheck> AllRecipes {get; set; }
-
- public static ObservableCollection<RecipeData> SelectRecipes { get; set; } = new ObservableCollection<RecipeData>();
-
- /// <summary>
- /// 取消筛选,即关闭本窗口。
- /// </summary>
- public BPARelayCommand CancelCommand { get; set; }
- /// <summary>
- /// 全选。
- /// </summary>
- public BPARelayCommand AllSelectCommand { get; set; }
- /// <summary>
- /// 全部取消选择。
- /// </summary>
- public BPARelayCommand AllCancelCommand { get; set; }
- /// <summary>
- /// 确认选择。
- /// </summary>
- public BPARelayCommand ConfirmCommand { get; set; }
-
- /// <summary>
- /// 一个配方数据的包装类。
- /// </summary>
- internal class RecipeDataWithCheck:NotifyBase
- {
- public RecipeData Recipe { get; set; }
- private bool _IsSelected;
-
- public bool IsSelected
- {
- get { return _IsSelected; }
- set { _IsSelected = value; OnPropertyChanged(); }
- }
-
- }
- }
- }
|