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 TempProfileTableViewModel : FurnaceUIViewModelBase { public TempProfileTableViewModel() { } public bool IsSave { get; set; } public bool IsProfileNoneChecked { get; set; } public bool IsProfileOneChecked { get; set; } public bool IsProfileTwoChecked { get; set; } public bool IsProfileThreeChecked { get; set; } public bool IsProfileFourChecked { get; set; } public bool IsProfileFiveChecked { get; set; } public string TempProfileTableSelected { 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 OnViewLoaded(object view) { base.OnViewLoaded(view); IsProfileNoneChecked = TempProfileTableSelected == "None"; IsProfileOneChecked = TempProfileTableSelected == "1"; IsProfileTwoChecked = TempProfileTableSelected == "2"; IsProfileThreeChecked = TempProfileTableSelected == "3"; IsProfileFourChecked = TempProfileTableSelected == "4"; IsProfileFiveChecked = TempProfileTableSelected == "5"; } protected override void OnInitialize() { base.OnInitialize(); InitTableSelected(); } private void InitTableSelected() { switch (TempProfileTableSelected) { case "Table1": TempProfileTableSelected = "1"; break; case "Table2": TempProfileTableSelected = "2"; break; case "Table3": TempProfileTableSelected = "3"; break; case "Table4": TempProfileTableSelected = "4"; break; case "Table5": TempProfileTableSelected = "5"; break; } if (TempProfileTableSelected == "None" || string.IsNullOrEmpty(TempProfileTableSelected)) { InitTableData("1"); } else { InitTableData(TempProfileTableSelected); } } private void InitTableData(string tableIndex) { CurrentValue.Clear(); ConfigNode rootNode = SystemConfigProvider.Instance.GetConfig(true); ConfigNode tempProfileNode = FindNodeByName(rootNode, "PM1.RecipeEditParameter.TempProfileTable"); ConfigNode tableNode = tempProfileNode.SubNodes.Find((x) => x.Name == $"Table{tableIndex}"); List subNodes = tableNode.SubNodes; foreach (var node in subNodes) { List temp = 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}"; temp.Add(SystemConfigProvider.Instance.GetValueByName(key)); } CurrentValue.Add(temp); } 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 TempProfileSelected(object sender) { if (sender.ToString() != "None") { InitTableData(sender.ToString()); } TempProfileTableSelected = sender.ToString(); } public void SaveCmd() { IsSave = true; ((Window)GetView()).DialogResult = true; } public void CloseCmd() { IsSave = false; ((Window)GetView()).DialogResult = false; } } }