| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | using Caliburn.Micro;using Caliburn.Micro.Core;using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using FurnaceUI.Models;using FurnaceUI.Views.Jobs;namespace FurnaceUI.Views.Editors{    public class ParameterCommandViewModel : FurnaceUIViewModelBase    {        public ObservableCollection<ShowStep> LoopStepNames { get; set; }        public ObservableCollection<ShowStep> JumpStepNames { get; set; }        private string selectCommand;        public string SelectCommand        {            get { return selectCommand; }            set { selectCommand = value; this.NotifyOfPropertyChange(nameof(SelectCommand)); }        }        public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式        private Visibility _rdoSubRecipeVisibility = Visibility.Visible;        public Visibility RdoSubRecipeVisibility        {            get => _rdoSubRecipeVisibility;            set            {                _rdoSubRecipeVisibility = value;                NotifyOfPropertyChange(nameof(RdoSubRecipeVisibility));            }        }        private Visibility _rdoLoopVisibility=Visibility.Visible;        public Visibility RdoLoopVisibility        {            get => _rdoLoopVisibility;            set            {                _rdoLoopVisibility = value;                NotifyOfPropertyChange(nameof(RdoLoopVisibility));            }        }        public void SetCommand(string commandContent)        {            var windowManager = IoC.Get<IWindowManager>();            switch (commandContent)            {                //case "Call→System recipe":                //    RecipeCommandCallRecipeViewModel selectedSubRecipeViewModel = new RecipeCommandCallRecipeViewModel();                //    selectedSubRecipeViewModel.SelectButtonContent = "System Recipe Select";                //    selectedSubRecipeViewModel.SelectedSupportedProcessType = "SupportedProcessType";                //    selectedSubRecipeViewModel.SelectedProcessType = "Process";                //    (windowManager as WindowManager)?.ShowDialogWithTitle(selectedSubRecipeViewModel, null, "System Recipe");                //    SelectRecipeCommand = $"CallSystemRecipe:{selectedSubRecipeViewModel.SelectedProcessRecipe}";                //    break;                case "Call Sub Recipe":                    RecipeCommandCallRecipeViewModel selectedSubRecipeViewModel = new RecipeCommandCallRecipeViewModel();                    selectedSubRecipeViewModel.SelectButtonContent = "Sub Recipe Select";                    selectedSubRecipeViewModel.SelectedSupportedProcessType = "SupportedSubType";                    selectedSubRecipeViewModel.SelectedProcessType = "Sub";                    (windowManager as WindowManager)?.ShowDialogWithTitle(selectedSubRecipeViewModel, null, "Sub Recipe");                    SelectCommand = $"CallSubRecipe:{selectedSubRecipeViewModel.SelectedProcessRecipe}";                    break;                case "JumpStep":                    RecipeLoopSetViewModel recipeLoopSetViewModel = new RecipeLoopSetViewModel();                    recipeLoopSetViewModel.StepNames = JumpStepNames;                    if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeLoopSetViewModel, null, "Jump"))                    {                        SelectCommand = "Jump:" + recipeLoopSetViewModel.SelectedText;                    }                    else                    {                        ((Window)GetView()).DialogResult = false;                        return;                    }                    break;                case "Loop":                    recipeLoopSetViewModel = new RecipeLoopSetViewModel();                    recipeLoopSetViewModel.StepNames = LoopStepNames;                    recipeLoopSetViewModel.LoopCountVisibility = Visibility.Visible;                    if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeLoopSetViewModel, null, "Loop"))                    {                        SelectCommand = "Loop:" + recipeLoopSetViewModel.SelectedText;                    }                    else                    {                        ((Window)GetView()).DialogResult = false;                        return;                    }                    break;                default:                    SelectCommand = commandContent;                    break;            }            if (SelectCommand.Contains("CallSubRecipe"))            {                RdoSubRecipeVisibility = Visibility.Visible;                RdoLoopVisibility = Visibility.Hidden;            }            else if (SelectCommand.Contains("Loop"))            {                RdoSubRecipeVisibility = Visibility.Hidden;                RdoLoopVisibility = Visibility.Visible;            }            else            {                RdoSubRecipeVisibility = Visibility.Visible;                RdoLoopVisibility = Visibility.Visible;            }        }        public void CloseCommand()        {            ((Window)GetView()).DialogResult = false;        }        public void OKCommand()        {            ((Window)GetView()).DialogResult = true;        }    }}
 |