| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | using Caliburn.Micro.Core;using DocumentFormat.OpenXml.Office2010.Excel;using FurnaceUI.Models;using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;using System;using System.Collections.ObjectModel;using System.Linq;using System.Windows;using System.Windows.Controls;namespace FurnaceUI.Views.Editors{    public class RecipeStepNameViewModel : FurnaceUIViewModelBase    {        public class StepInfo : PropertyChangedBase        {            private string _number;            public string Number            {                get { return _number; }                set { _number = value; this.NotifyOfPropertyChange(nameof(Number)); }            }            private string _Name;            public string Name            {                get { return _Name; }                set { _Name = value; this.NotifyOfPropertyChange(nameof(Name)); }            }            private bool _IsChecked;            public bool IsChecked            {                get { return _IsChecked; }                set { _IsChecked = value; this.NotifyOfPropertyChange(nameof(IsChecked)); }            }        }        public ObservableCollection<StepInfo> Steps { get; set; } = new ObservableCollection<StepInfo>();        public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式        public string SelectedStepName { get; set; }        public bool CheckNumber { get; set; } = false;        private ConfigNode _configNode;        public ConfigNode ConfigNode        {            get { return _configNode; }            set { _configNode = value; this.NotifyOfPropertyChange(nameof(ConfigNode)); }        }        protected override void OnInitialize()        {            base.OnInitialize();            ConfigNode _rootNode = SystemConfigProvider.Instance.GetConfig(true);            string strHeader = "PM1.RecipeEditParameter.StepName";            ConfigNode = FindNodeByName(_rootNode, strHeader);            for (int i = 0; i < ConfigNode.Items.Count; i++)            {                string key = String.Format("{0}.{1}", strHeader, ConfigNode.Items[i].Name);                ConfigNode.Items[i].CurrentValue = SystemConfigProvider.Instance.GetValueByName(key);            }            for (int i = 0; i < ConfigNode.Items.Count; i++)            {                Steps.Add(new StepInfo() { Number = ConfigNode.Items[i].Name, Name = $"{i + 1}:{ConfigNode.Items[i].CurrentValue}" });            }            if (CheckNumber)            {                var step = Steps.FirstOrDefault(x => x.Number == SelectedStepName);                if (step != null)                {                    step.IsChecked = true;                }            }            else            {                var step = Steps.FirstOrDefault(x => x.Name == SelectedStepName);                if (step != null)                {                    step.IsChecked = true;                }            }        }        private ConfigNode FindNodeByName(ConfigNode parentNode, string strName)        {            string strCates = strName.Split('.')[0];            ConfigNode node = parentNode.SubNodes.Find((x) => x.Name == strCates);            if (node == null)                return parentNode;            else                return FindNodeByName(node, strName.Replace(strCates + ".", ""));        }        public void Select(object para)        {            SelectedStepName = (para as RadioButton).Content.ToString();            ((Window)GetView()).DialogResult = true;        }        public void StepNameEdit(string cmdName)        {            switch (cmdName)            {                case "Close":                    ((Window)GetView()).DialogResult = false;                    break;                case "Save":                    ((Window)GetView()).DialogResult = true;                    break;            }        }    }}
 |