private void AddArea(object sender, RoutedEventArgs e) { lock (_lock) { if (_areas == null) _areas = new List<Business.Area>(); AreaSetting setting = new AreaSetting(); if (setting.ShowDialog() == true) { string name = setting.Area_name; Area temp = new Area(name); _areas.Add(temp);//将Area类类型的变量添加到List表中 //更新 Refresh(); } } }
/// <summary> /// 加载配置文件 /// </summary> private void LoadConfig() { try { XmlDocument config = new XmlDocument(); config.Load(_configFile); XmlNode root = config.SelectSingleNode("Root"); #region LoadNormalCommand XmlNodeList areas = root.SelectNodes("Area"); _areas.Clear(); foreach (XmlNode area in areas) { string areaName = area.SelectSingleNode("AreaName").InnerText; Area tempArea = new Area(areaName); _areas.Add(tempArea); XmlNodeList actions = area.SelectNodes("Action"); foreach (XmlNode action in actions) { string actionName = action.SelectSingleNode("ActionName").InnerText; string actionReceiveData = action.SelectSingleNode("ActionReceiveData").InnerText; UserAction useraction = new UserAction(actionName,actionReceiveData); //tempArea.Actions.Add(useraction); _userAction.Add(useraction); XmlNodeList oprations = action.SelectNodes("Operation"); foreach (XmlNode operation in oprations) { string operationName = operation.SelectSingleNode("OperationName").InnerText; string operationTypeString = operation.SelectSingleNode("OperationType").InnerText; OprationType operationType = (OprationType)Enum.Parse(typeof(OprationType),operationTypeString,true); XmlNode operationSetting = operation.SelectSingleNode("OperationSetting"); object setting = null; if (operationType == OprationType.Com) { ComSetting cs = new ComSetting(); cs.ComNumber = operationSetting.SelectSingleNode("ComNumber").InnerText; cs.BaudRate = int.Parse(operationSetting.SelectSingleNode("BaudRate").InnerText); cs.DataBits = int.Parse(operationSetting.SelectSingleNode("DataBit").InnerText); cs.StopBits = int.Parse(operationSetting.SelectSingleNode("StopBit").InnerText); cs.Parity = (Parity)Enum.Parse(typeof(Parity),operationSetting.SelectSingleNode("Parity").InnerText); setting = cs; } else if (operationType == OprationType.TCP || operationType == OprationType.UDP) { NetworkSetting ns = new NetworkSetting(); ns.Ip = operationSetting.SelectSingleNode("IP").InnerText; ns.Port = int.Parse(operationSetting.SelectSingleNode("Port").InnerText); setting = ns; } string dataTypeString = operation.SelectSingleNode("OperationDataType").InnerText; DataType dataType = (DataType)Enum.Parse(typeof(DataType),dataTypeString,true); string data = operation.SelectSingleNode("OperationData").InnerText; int time = int.Parse(operation.SelectSingleNode("OperationTime").InnerText); UserOperation userOperation = new UserOperation(operationName,operationType,dataType,setting,data,time); _userOperation.Add(userOperation); } } } _arealist.Refresh(); #endregion } catch(Exception ex) { MessageBox.Show("未找到配置命令!"); } }
public void Delete(Area area) { lock (_lock) { if (_areas != null) { _areas.Remove(area); } Refresh(); } }
private void MoveDown(object sender, RoutedEventArgs e) { Area areaToSwap = null; for (int i = 0; i < AreaContains.Children.Count; i++) { if ((AreaContains.Children[i] as UserArea).IsSelected) { areaToSwap = (AreaContains.Children[i] as UserArea).MyArea; break; } } if (areaToSwap != null) { for (int i = 0; i < _areas.Count(); i++) { if (_areas[i] == areaToSwap && i != _areas.Count - 1) { Area areatemp = new Area(_areas[i + 1].Name); _areas[i+1] = areaToSwap; _areas[i] = areatemp; Refresh(); break; } } } }