| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | using Aitex.Core.RT.SCCore;using Caliburn.Micro;using Caliburn.Micro.Core;using MECF.Framework.Common.DataCenter;using MECF.Framework.Common.RecipeCenter;using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;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.Parameter;using FurnaceUI.Views.Recipes;using System.Windows.Controls;using System.Windows.Media;namespace FurnaceUI.Views.Editors{    public class RecipePressCommandViewModel : FurnaceUIViewModelBase    {        private Dictionary<string, string> boatCmd = new Dictionary<string, string>();        public bool IsSave { get; set; }        public string SelectedCmd { get; set; }        private string _description = "";        public string Description        {            get => _description;            set            {                _description = value;                NotifyOfPropertyChange(nameof(Description));            }        }        public string ReturnString { get; set; } = "";        public RecipePressCommandViewModel()        {            //CreateRadioButton();        }        public void RdoChecked(string cmd, object sender)        {            if (sender is RadioButton)            {                ReturnString = cmd;                //switch (cmd)                //{                //    default:                //        break;                //}            }        }        //private void CreateRadioButton()        //{        //    boatCmd.Clear();        //    boatCmd.Add("Boat Load", "The boat is loaded in the furnace.(Speed set avai lable)");        //    boatCmd.Add("Boat Unload", "The boat is unloaded f rom the furnace.(Speed set available)");        //    boatCmd.Add("Boat Loader Home", "Boat Loader ismoved to the home position.");        //    boatCmd.Add("Boat Rotate", "The boat is rotated.");        //    boatCmd.Add("Boat Rotate Stop", "The rotat ion of the boat is stopped and R-axis is moved to the home position.");        //    boatCmd.Add("Boat CAP2", "Boat Loader is moved to CAP2 position.(CAP2 : CAP position in condition to not seal the reactor)");        //    boatCmd.Add("Stop(Include R-axis)", "Boat Loader is stopped. (Include R-axis.");        //}        public void RdoChecked(object sender)        {            Description = boatCmd[(string)((RadioButton)sender).Content];            if ((bool)((RadioButton)sender).IsChecked)            {                ReturnString = (string)((RadioButton)sender).Content;            }        }        public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式        public string RecipeType { get; set; }        protected override void OnViewLoaded(object view)        {            base.OnViewLoaded(view);            LoadData(view);        }        private void LoadData(object view)        {            if (!string.IsNullOrEmpty(SelectedCmd) )            {                var pressCmdView = (RecipePressCommandView)view;                RadioButton radioButton = GetChildObject<RadioButton>(pressCmdView, SelectedCmd.Replace(" ",""));                if (radioButton != null)                {                    radioButton.IsChecked = true;                }            }            ReturnString = SelectedCmd;        }        /// <summary>        /// 查找子控件        /// </summary>        /// <typeparam name="T">子控件的类型</typeparam>        /// <param name="obj">要找的是obj的子控件</param>        /// <param name="name">想找的子控件的Name属性</param>        /// <returns>目标子控件</returns>        public static T GetChildObject<T>(DependencyObject obj, string name) where T : FrameworkElement        {            DependencyObject child = null;            T grandChild = null;            for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)            {                child = VisualTreeHelper.GetChild(obj, i);                if (child is T && (((T)child).Name == name | string.IsNullOrEmpty(name)))                {                    return (T)child;                }                else                {                    // 在下一级中没有找到指定名字的子控件,就再往下一级找                    grandChild = GetChildObject<T>(child, name);                    if (grandChild != null)                        return grandChild;                }            }            return null;        }        public void TempSetSave()        {            IsSave = true;            ((Window)GetView()).DialogResult = true;        }        public void TempSetCancel()        {            IsSave = false;            ((Window)GetView()).DialogResult = false;        }    }}
 |