From bc6d6b77675b8915635aa04ba765ea627ac63cfa Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期二, 17 十二月 2019 09:38:17 +0800
Subject: [PATCH] 2019.12.17

---
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs |  390 ++++++++++++++++++++++++++----------------------------
 1 files changed, 188 insertions(+), 202 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index a26095e..2b2ee9c 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -122,231 +122,211 @@
                 {
                     try
                     {
+                        if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0)
+                        {
+                            return;
+                        }
                         for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++)
                         {
                             var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout;
-                            var deviceUI = rowFL.Tag as DeviceUI;
-                            if (deviceUI.CommonDevice == null || rowFL.ChildrenCount == 0)
+                            if (rowFL.ChildrenCount == 0)
                             {
                                 //璁惧涓虹┖鎴栬�呮帶浠朵负绌�
                                 continue;
                             }
 
-                            if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
-                            {
-                                //鍒ゆ柇鏄惁涓哄綋鍓嶈澶�
-                                continue;
-                            }
-                            var frameLayout = rowFL.GetChildren(0) as FrameLayout;
-                            switch (deviceUI.CommonDevice.Type)
-                            {
-                                case DeviceType.OnOffOutput:
-                                    //寮�鍏冲姛鑳�
-                                    if (common.DeviceStatusReport.CluterID == 6)
-                                    {
-                                        var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
-                                        onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport;
-
-                                        //璁板綍銆佹洿鏂扮姸鎬�
-                                        if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0)
-                                        {
-                                            continue;
-                                        }
-                                        onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1;
-                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
-                                        //璁板綍鍥炲鏃堕棿
-                                        onOffOutputLight.LastDateTime = DateTime.Now;
-                                    }
-                                    break;
+                            for (int j=0;j<rowFL.ChildrenCount;j++)
+                            {
+                                var deviceUI = (rowFL.GetChildren(j) as FunctionMainView).Tag as DeviceUI;
+                                if (deviceUI == null || deviceUI.CommonDevice == null)
+                                {
+                                    //璁惧涓虹┖鎴栬�呮帶浠朵负绌�
+                                    continue;
+                                }
+                                if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
+                                {
+                                    //鍒ゆ柇鏄惁涓哄綋鍓嶈澶�
+                                    continue;
+                                }
 
-                                case DeviceType.AirSwitch:
-                                    //寮�鍏冲姛鑳�
-                                    if (common.DeviceStatusReport.CluterID == 6)
-                                    {
-                                        var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
-                                        airSwitch.DeviceStatusReport = common.DeviceStatusReport;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
-                                            {
-                                                //璁板綍銆佹洿鏂扮姸鎬�
-                                                if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0)
+                                switch (deviceUI.CommonDevice.Type)
+                                {
+                                    case DeviceType.OnOffOutput:
+                                        //寮�鍏冲姛鑳�
+                                        if (common.DeviceStatusReport.CluterID == 6)
+                                        {
+                                            var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
+                                            onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport;
+                                            onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                            (rowFL.GetChildren(j) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1;
+                                            (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                            onOffOutputLight.LastDateTime = DateTime.Now;
+                                        }
+                                        break;
+
+                                    case DeviceType.AirSwitch:
+                                        //寮�鍏冲姛鑳�
+                                        if (common.DeviceStatusReport.CluterID == 6)
+                                        {
+                                            var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
+                                            airSwitch.DeviceStatusReport = common.DeviceStatusReport;
+                                            airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                            (rowFL.GetChildren(j) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1;
+                                            (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                            airSwitch.LastDateTime = DateTime.Now;
+                                        }
+                                        //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
+                                        if (common.DeviceStatusReport.CluterID == 3)
+                                        {
+                                            deviceUI.CommonDevice.IsOnline = 1;
+                                            deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        }
+                                        break;
+
+                                    case DeviceType.WindowCoveringDevice:
+                                        if (common.DeviceStatusReport.CluterID == 258)
+                                        {
+                                            if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+                                            {
+                                                //绐楀笜绫诲瀷
+                                                var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                                rollerShade.DeviceStatusReport = common.DeviceStatusReport;
+                                                rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                                rollerShade.LastDateTime = DateTime.Now;
+                                                (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
+                                                (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                            }
+                                            if (common.DeviceStatusReport.AttriBute[0].AttributeId == 8)
+                                            {
+                                                //绐楀笜鐧惧垎姣�
+                                                var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                                rollerShade.DeviceStatusReport = common.DeviceStatusReport;
+                                                rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                                rollerShade.LastDateTime = DateTime.Now;
+                                                (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
+                                                (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                            }
+                                        }
+                                        if (common.DeviceStatusReport.CluterID == 3)
+                                        {
+                                            deviceUI.CommonDevice.IsOnline = 1;
+                                            deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        }
+                                        break;
+
+                                    case DeviceType.Thermostat:
+                                        //AC鍔熻兘
+                                        if (common.DeviceStatusReport.CluterID == 513)
+                                        {
+                                            var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                            ac.DeviceStatusReport = common.DeviceStatusReport;
+                                            var attriButeList = ac.DeviceStatusReport.AttriBute;
+                                            foreach(var attList in attriButeList)
+                                            {
+                                                var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
+                                                switch (attList.AttributeId)
                                                 {
-                                                    return;
+                                                    case 0:
+                                                        //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
+                                                        ac.currentLocalTemperature = curTemp;
+                                                        ac.LastDateTime = DateTime.Now;
+                                                        break;
+                                                    case 17:
+                                                        //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
+                                                        ac.currentCoolingSetpoint = curTemp;
+                                                        ac.LastDateTime = DateTime.Now;
+                                                        break;
+                                                    case 18:
+                                                        //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
+                                                        ac.currentHeatingSetpoint = curTemp;
+                                                        ac.LastDateTime = DateTime.Now;
+                                                        break;
+                                                    case 4096:
+                                                        //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
+                                                        ac.currentAutoSetpoint = curTemp;
+                                                        ac.LastDateTime = DateTime.Now;
+                                                        break;
+
+                                                    case 28:
+                                                        //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡
+                                                        ac.currentSystemMode = attList.AttriButeData;
+                                                        ac.LastDateTime = DateTime.Now;
+                                                        break;
+                                                    case 4099:
+                                                        var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0');
+                                                        var modeStr = value.Substring(value.Length - 5, 5);
+                                                        for (int k = 0; k < modeStr.Length; k++)
+                                                        {
+                                                            ac.listSupportMode[k] = Convert.ToInt32(modeStr[k]) == 49 ? 1 : 0;
+                                                        }
+                                                        break;
                                                 }
-                                                airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                                (rowFL.GetChildren(0) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1;
-                                                (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
-                                                //璁板綍鍥炲鏃堕棿
-                                                airSwitch.LastDateTime = DateTime.Now;
-                                            }
-                                        }
-                                    }
-                                    //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                    if (common.DeviceStatusReport.CluterID == 3)
-                                    {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    }
-                                    break;
-
-                                case DeviceType.WindowCoveringDevice:
-                                    if (common.DeviceStatusReport.CluterID == 258)
-                                    {
-                                        if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
-                                        {
-                                            //绐楀笜绫诲瀷
-                                            var rollerShade = deviceUI.CommonDevice as Rollershade;
-                                            rollerShade.DeviceStatusReport = common.DeviceStatusReport;
-                                            rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                            rollerShade.LastDateTime = DateTime.Now;
-                                            (rowFL.GetChildren(0) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
-                                            (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                            }
+                                            (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0;
+                                            (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                         }
-                                    }
-                                    if (common.DeviceStatusReport.CluterID == 3)
-                                    {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    }
-                                    break;
-
-                                case DeviceType.Thermostat:
-                                    //AC鍔熻兘
-                                    if (common.DeviceStatusReport.CluterID == 513)
-                                    {
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                        ac.DeviceStatusReport = common.DeviceStatusReport;
-                                        var attriButeList = ac.DeviceStatusReport.AttriBute;
-                                        if (attriButeList == null || attriButeList.Count == 0)
+                                        if (common.DeviceStatusReport.CluterID == 514)
                                         {
-                                            continue;
-                                        }
-
-                                        var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
-                                        switch (attriButeList[0].AttributeId)
-                                        {
-                                            case 0:
-                                                //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
-                                                ac.currentLocalTemperature = curTemp;
-                                                ac.LastDateTime = DateTime.Now;
-                                                break;
-
-                                            case 17:
-                                                //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                                ac.currentCoolingSetpoint = curTemp;
-                                                ac.LastDateTime = DateTime.Now;
-                                                break;
-
-                                            case 18:
-                                                //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                                ac.currentHeatingSetpoint = curTemp;
-                                                ac.LastDateTime = DateTime.Now;
-                                                break;
-
-                                            case 4096:
-                                                //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                                ac.currentAutoSetpoint = curTemp;
-                                                ac.LastDateTime = DateTime.Now;
-                                                break;
-
-                                            case 28:
-                                                //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡
-                                                ac.currentSystemMode = attriButeList[0].AttriButeData;
-                                                ac.LastDateTime = DateTime.Now;
-                                                break;
-
-                                            case 4099:
-                                                var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0');
-                                                var modeStr = value.Substring(value.Length - 5, 5);
-                                                for (int j = 0; j < modeStr.Length; j++)
+                                            var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                            var attriButeList = common.DeviceStatusReport.AttriBute;
+                                            ac.DeviceStatusReport = common.DeviceStatusReport;
+                                            foreach(var attList in attriButeList)
+                                            {
+                                                switch (attList.AttributeId)
                                                 {
-                                                    ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0;
+                                                    case 0:
+                                                        ac.currentFanMode = attList.AttriButeData;
+                                                        ac.LastDateTime = DateTime.Now;
+                                                        break;
+                                                    case 4096:
+                                                        ac.currentFanSwingMode = attList.AttriButeData;
+                                                        ac.LastDateTime = DateTime.Now;
+                                                        break;
                                                 }
-                                                break;
+                                            }
+                                            (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0;
+                                            (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                         }
-                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0;
-                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
-                                    }
-                                    if (common.DeviceStatusReport.CluterID == 514)
-                                    {
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                        var attriButeList = common.DeviceStatusReport.AttriBute;
-                                        if (attriButeList == null || attriButeList.Count == 0)
+                                        //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
+                                        if (common.DeviceStatusReport.CluterID == 3)
                                         {
-                                            return;
+                                            var ac = deviceUI.CommonDevice as AC;
+                                            ac.IsOnline = 1;
+                                            ac.LastDateTime = DateTime.Now;
                                         }
-                                        ac.DeviceStatusReport = common.DeviceStatusReport;
-                                        switch (attriButeList[0].AttributeId)
-                                        {
-                                            case 0:
-                                                ac.currentFanMode = attriButeList[0].AttriButeData;
-                                                ac.LastDateTime = DateTime.Now;
-                                                break;
-                                            case 4096:
-                                                ac.currentFanSwingMode = attriButeList[0].AttriButeData;
-                                                ac.LastDateTime = DateTime.Now;
-                                                break;
-                                        }
-                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0;
-                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
-                                    }
-                                    //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                    if (common.DeviceStatusReport.CluterID == 3)
-                                    {
-                                        var ac = deviceUI.CommonDevice as AC;
-                                        ac.IsOnline = 1;
-                                        ac.LastDateTime = DateTime.Now;
-                                    }
-                                    break;
+                                        break;
 
-                                case DeviceType.DimmableLight:
-                                    //璋冨厜鐏姛鑳�
-                                    //寮�鍏冲姛鑳�
-                                    if (common.DeviceStatusReport.CluterID == 6)
-                                    {
-                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                        dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
-                                        //璁板綍銆佹洿鏂扮姸鎬�
-                                        if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
+                                    case DeviceType.DimmableLight:
+                                        //璋冨厜鐏姛鑳�
+                                        if (common.DeviceStatusReport.CluterID == 6)
                                         {
-                                            return;
+                                            var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                            dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
+                                            dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                            (rowFL.GetChildren(j) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1;
+                                            (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                            dimmableLight.LastDateTime = DateTime.Now;
                                         }
-                                        dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1;
-                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
-                                        //璁板綍鍥炲鏃堕棿
-                                        dimmableLight.LastDateTime = DateTime.Now;
-                                    }
 
-                                    //浜害
-                                    if (common.DeviceStatusReport.CluterID == 8)
-                                    {
-                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                        dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
-                                        var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
-                                        if (attriButeList == null || attriButeList.Count == 0)
+                                        //浜害
+                                        if (common.DeviceStatusReport.CluterID == 8)
                                         {
-                                            continue;
+                                            var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                            dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
+                                            var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
+                                            switch (attriButeList[0].AttributeId)
+                                            {
+                                                case 0:
+                                                    //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
+                                                    dimmableLight.Level = attriButeList[0].AttriButeData;
+                                                    dimmableLight.LastDateTime = DateTime.Now;
+                                                    (rowFL.GetChildren(j) as FunctionMainView).IsSelected = true;
+                                                    (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                                    break;
+                                            }
                                         }
-                                        switch (attriButeList[0].AttributeId)
-                                        {
-                                            case 0:
-                                                //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
-                                                dimmableLight.Level = attriButeList[0].AttriButeData;
-                                                dimmableLight.LastDateTime = DateTime.Now;
-                                                (rowFL.GetChildren(0) as FunctionMainView).IsSelected = true;
-                                                (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
-                                                break;
-                                        }
-                                    }
-                                    break;
+                                        break;
+                                }
                             }
                         }
                     }
@@ -963,7 +943,6 @@
                         itemView = new FrameLayout()
                         {
                             Height = Application.GetRealHeight(14 + 348),
-                            Tag = device
                         };
                         deviceVerticalScrolViewLayout.AddChidren(itemView);
                     }
@@ -1013,6 +992,7 @@
                             }
                         }
                         var lightView = new FunctionMainView(xx, yy);
+                        lightView.Tag = device;
                         itemView.AddChidren(lightView);
                         lightView.Init();
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
@@ -1121,6 +1101,7 @@
                         var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
+                        lightView.Tag = device;
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                         lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
@@ -1255,6 +1236,7 @@
                         var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
+                        lightView.Tag = device;
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                         lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(airSwitch.DeviceEpointName);
@@ -1360,6 +1342,7 @@
                         var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
+                        lightView.Tag = device;
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                         lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
@@ -1464,6 +1447,7 @@
                         var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
+                        lightView.Tag = device;
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                         lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
@@ -1562,6 +1546,7 @@
                         var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
+                        lightView.Tag = device;
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                         lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
@@ -1593,6 +1578,7 @@
                         var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
+                        lightView.Tag = device;
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                         lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);

--
Gitblit v1.8.0