using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows; using MECF.Framework.Common.DataCenter; using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig; using FurnaceUI.Models; namespace FurnaceUI.Views.Editors { public class TempStabilizeTableViewModel : FurnaceUIViewModelBase { public TempStabilizeTableViewModel() { } public bool IsSave { get; set; } public bool IsStabilizeNoneChecked { get; set; } public bool IsStabilizeOneChecked { get; set; } public bool IsStabilizeTwoChecked { get; set; } public bool IsStabilizeThreeChecked { get; set; } public bool IsStabilizeFourChecked { get; set; } public bool IsStabilizeFiveChecked { get; set; } public string TempStabilizeTableSelected { get; set; } public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式 private List _currentValue = new List(); public List CurrentValue { get => _currentValue; set { _currentValue = value; NotifyOfPropertyChange(nameof(CurrentValue)); } } protected override void OnInitialize() { base.OnInitialize(); InitTableSelected(); IsStabilizeNoneChecked = TempStabilizeTableSelected == "None"; IsStabilizeOneChecked = TempStabilizeTableSelected == "1"; IsStabilizeTwoChecked = TempStabilizeTableSelected == "2"; IsStabilizeThreeChecked = TempStabilizeTableSelected == "3"; IsStabilizeFourChecked = TempStabilizeTableSelected == "4"; IsStabilizeFiveChecked = TempStabilizeTableSelected == "5"; } private void InitTableSelected() { switch (TempStabilizeTableSelected) { case "Table1": TempStabilizeTableSelected = "1"; break; case "Table2": TempStabilizeTableSelected = "2"; break; case "Table3": TempStabilizeTableSelected = "3"; break; case "Table4": TempStabilizeTableSelected = "4"; break; case "Table5": TempStabilizeTableSelected = "5"; break; } if (TempStabilizeTableSelected == "None" || string.IsNullOrEmpty(TempStabilizeTableSelected)) { InitTableData("1","Top"); } else { InitTableData(TempStabilizeTableSelected,"Top"); } } private void InitTableData(string table,string displayName) { CurrentValue.Clear(); ConfigNode rootNode = SystemConfigProvider.Instance.GetConfig(true); ConfigNode tempProfileNode = FindNodeByName(rootNode, "PM1.RecipeEditParameter.TempStabilizeTable"); ConfigNode tableNode = tempProfileNode.SubNodes.Find((x) => x.Name == $"Table{table}"); List subNodes = tableNode.SubNodes; foreach (var node in subNodes) { if (node.Name == displayName) { CurrentValue = new List(); string sNodeName = string.IsNullOrEmpty(node.Path) ? node.Name : $"{node.Path}.{node.Name}"; foreach (var item in node.Items) { string key = $"{sNodeName}.{item.Name}"; CurrentValue.Add(SystemConfigProvider.Instance.GetValueByName(key)); } } } NotifyOfPropertyChange(nameof(CurrentValue)); } 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 TempStabilizeSelected(object sender) { if (sender.ToString() != "None") { InitTableData(sender.ToString(),"Top"); } TempStabilizeTableSelected = sender.ToString(); } public void DisplayNameSelected(object sender) { if (TempStabilizeTableSelected == "None") InitTableData("1", sender.ToString()); else InitTableData(TempStabilizeTableSelected, sender.ToString()); } public void SaveCmd() { IsSave = true; ((Window)GetView()).DialogResult = true; } public void CloseCmd() { IsSave = false; ((Window)GetView()).DialogResult = false; } } }