public void Update() { #region UpdateUI_IO /*查找界面上有多少IO,将数据list拆开分解后传入各IO模型界面类内部 */ foreach (var IO in IOGroup.Children)//界面全部刷新,全部遍历 { if (IO is DO15) { DO15 tIo = (DO15)IO; foreach (var item in Tool.UIlist) { if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历 { //数据锁 if (tIo.IsUpdate)//从数据更新到UI { tIo.UpdateInputData(item); } else { tIo.UpdateAll();//从UI更新到数据 } break; } } } else if (IO is DO8R) { DO8R tIo = (DO8R)IO; foreach (var item in Tool.UIlist) { if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历 { //数据锁 if (tIo.IsUpdate)//从数据更新到UI { tIo.UpdateInputData(item); } else//从UI更新到数据 { tIo.UpdateAll(); } break; } } } else if (IO is DI16) { DI16 tIo = (DI16)IO; foreach (var item in Tool.UIlist) { if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历 { tIo.UpdateInputData(item); break; } } } else if (IO is AO_4) { AO_4 tIo = (AO_4)IO; foreach (var item in Tool.UIlist) { if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历 { tIo.UpdateInputData(item); break; } } } else if (IO is AI8) { AI8 tIo = (AI8)IO; foreach (var item in Tool.UIlist) { if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历 { tIo.UpdateInputData(item); break; } } } else if (IO is AI8C) { AI8C tIo = (AI8C)IO; foreach (var item in Tool.UIlist) { if (item.m_nodeID.ToString() == tIo.modelView.NodeID) //找到后就退出内层遍历 //不能再加上是否在线的标志,否则掉线后无法更新UI { //for (int i = 0; i < item.m_DataAI.Count; i++) //{ // item.m_DataAI[i] = T; //} tIo.UpdateInputData(item); break; } } } } #endregion }