From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28

---
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs |  279 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 151 insertions(+), 128 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index a5d22e8..44eaab9 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -1,13 +1,13 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Timers;
 using Shared.Common;
 using Shared.Phone.Device.AC;
-using ZigBee.Device;
 using Shared.Phone.Device.CommonForm;
-using Shared.Phone.UserCenter.DoorLock;
-using System.Timers;
 using Shared.Phone.Device.DeviceLogic;
 using Shared.Phone.UserCenter;
+using Shared.Phone.UserCenter.DoorLock;
+using ZigBee.Device;
 
 namespace Shared.Phone.UserView
 {
@@ -254,14 +254,6 @@
                                                         //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡
                                                         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;
                                                 }
                                             }
@@ -919,6 +911,7 @@
         /// </summary>
         private void ShowFunction()
         {
+            functionSceneBodyView.RemoveAll();
             //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙�
             var deviceList = Room.CurrentRoom.DeviceUIList;
             if (deviceList == null)
@@ -935,7 +928,7 @@
                 var dList = new List<DeviceUI> { };
                 foreach(var device in deviceList)
                 {
-                    var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device.CommonDevice });
+                    var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device.CommonDevice);
                     if (info.BeloneType == DeviceBeloneType.A骞叉帴鐐� || info.BeloneType == DeviceBeloneType.A涓户鍣�)
                     {
                         continue;
@@ -1011,18 +1004,17 @@
                                         })
                                         { IsBackground = true }.Start();
 
-                                        var lightView = new FunctionMainView(xx, yy);
-                                        lightView.Tag = device;
-                                        itemView.AddChidren(lightView);
-                                        lightView.Init();
-                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
-                                        lightView.SetStatuText(device.GetDeviceStatu());
-                                        lightView.SetDeviceName(rollerShade.DeviceEpointName);
-                                        //lightView.SetStatu(true);
-                                        lightView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
-                                        lightView.SetCollect(true);
+                                        var functionView = new FunctionMainView(xx, yy);
+                                        functionView.Tag = device;
+                                        itemView.AddChidren(functionView);
+                                        functionView.Init();
+                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                                        functionView.SetStatuText(device.GetDeviceStatu());
+                                        functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(rollerShade));
+                                        functionView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
+                                        functionView.SetCollect(true);
 
-                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
+                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                         {
                                             (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                             if ((sender as Button).IsSelected)
@@ -1079,18 +1071,22 @@
                                             }
                                         };
 
-                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
+                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                         {
                                             CommonPage.Instance.IsDrawerLockMode = true;
                                             var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
                                             UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                                             UserView.HomePage.Instance.PageIndex += 1;
                                             UserView.HomePage.Instance.ScrollEnabled = false;
-                                            //rollerShadeControl.action = RefreshBodyView;
+                                            rollerShadeControl.IsDrawerLockMode = true;
                                             rollerShadeControl.Show(device, Room.CurrentRoom);
+                                            rollerShadeControl.action += (curDev, curRoom) =>
+                                            {
+                                                ReFreshEditDeviceAction(device, curRoom, functionView);
+                                            };
                                         };
 
-                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
+                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                     }
                                 }
                                 else if (device.CommonDevice.Type == DeviceType.OnOffOutput)
@@ -1119,27 +1115,26 @@
                                         })
                                         { IsBackground = true }.Start();
 
-                                        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);
-                                        lightView.IsSelected = light.OnOffStatus == 1;
-                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                        var functionView = new FunctionMainView(xx, yy);
+                                        itemView.AddChidren(functionView);
+                                        functionView.Init();
+                                        functionView.Tag = device;
+                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                                        functionView.SetStatuText(device.GetDeviceStatu());
+                                        functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
+                                        functionView.IsSelected = light.OnOffStatus == 1;
+                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
 
-                                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-                                        if (dev == null)
+                                        if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
                                         {
-                                            lightView.CollectButton.IsSelected = false;
+                                            functionView.CollectButton.IsSelected = false;
                                         }
                                         else
                                         {
-                                            lightView.CollectButton.IsSelected = true;
+                                            functionView.CollectButton.IsSelected = true;
                                         }
 
-                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
+                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                         {
                                             (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                             if ((sender as Button).IsSelected)
@@ -1196,36 +1191,22 @@
                                             }
                                         };
 
-                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
+                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                         {
                                             CommonPage.Instance.IsDrawerLockMode = true;
-                                            if (device.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�)
+
+                                            var lightControl = new Phone.Device.Light.OnOffControl();
+                                            UserView.HomePage.Instance.AddChidren(lightControl);
+                                            UserView.HomePage.Instance.PageIndex += 1;
+                                            lightControl.IsDrawerLockMode = true;
+                                            lightControl.Show(device, Room.CurrentRoom);
+                                            lightControl.action += (curDev, curRoom) =>
                                             {
-                                                var lightControl = new Phone.Device.Light.OnOffControl();
-                                                UserView.HomePage.Instance.AddChidren(lightControl);
-                                                UserView.HomePage.Instance.PageIndex += 1;
-                                                //lightControl.action = RefreshBodyView;
-                                                lightControl.Show(device, Room.CurrentRoom);
-                                            }
-                                            else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                                            {
-                                                var lightControl = new Phone.Device.Light.PlugControl();
-                                                UserView.HomePage.Instance.AddChidren(lightControl);
-                                                UserView.HomePage.Instance.PageIndex += 1;
-                                                //lightControl.action = RefreshBodyView;
-                                                lightControl.Show(device, Room.CurrentRoom);
-                                            }
-                                            else
-                                            {
-                                                var lightControl = new Phone.Device.Light.LightControl();
-                                                UserView.HomePage.Instance.AddChidren(lightControl);
-                                                UserView.HomePage.Instance.PageIndex += 1;
-                                                //lightControl.action = RefreshBodyView;
-                                                lightControl.Show(device, Room.CurrentRoom);
-                                            }
+                                                ReFreshEditDeviceAction(device, curRoom, functionView);
+                                            };
                                         };
 
-                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
+                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                     }
                                 }
                                 else if (device.CommonDevice.Type == DeviceType.AirSwitch)
@@ -1254,18 +1235,17 @@
                                         })
                                         { IsBackground = true }.Start();
 
-                                        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);
-                                        //lightView.SetStatu(true);
-                                        lightView.IsSelected = airSwitch.OnOffStatus == 1;
-                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                        var functionView = new FunctionMainView(xx, yy);
+                                        itemView.AddChidren(functionView);
+                                        functionView.Init();
+                                        functionView.Tag = device;
+                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                                        functionView.SetStatuText(device.GetDeviceStatu());
+                                        functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(airSwitch));
+                                        functionView.IsSelected = airSwitch.OnOffStatus == 1;
+                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom( device.FileName));
 
-                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
+                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                         {
                                             (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                             if ((sender as Button).IsSelected)
@@ -1322,17 +1302,22 @@
                                             }
                                         };
 
-                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
+                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                         {
                                             CommonPage.Instance.IsDrawerLockMode = true;
                                             var lightControl = new Phone.Device.Light.AirSwitchControl();
                                             UserView.HomePage.Instance.AddChidren(lightControl);
                                             UserView.HomePage.Instance.PageIndex += 1;
-                                            //lightControl.action = RefreshBodyView;
+                                            lightControl.IsDrawerLockMode = true;
                                             lightControl.Show(device, Room.CurrentRoom);
+                                            lightControl.action += (curDev, curRoom) =>
+                                            {
+                                                ReFreshEditDeviceAction(device, curRoom, functionView);
+                                            };
+
                                         };
 
-                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
+                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                     }
                                 }
                                 else if (device.CommonDevice.Type == DeviceType.Thermostat)
@@ -1361,17 +1346,17 @@
                                         })
                                         { IsBackground = true }.Start();
 
-                                        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);
-                                        lightView.IsSelected = ac.currentSystemMode != 0;
-                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                        var functionView = new FunctionMainView(xx, yy);
+                                        itemView.AddChidren(functionView);
+                                        functionView.Init();
+                                        functionView.Tag = device;
+                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                                        functionView.SetStatuText(device.GetDeviceStatu());
+                                        functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
+                                        functionView.IsSelected = ac.currentSystemMode != 0;
+                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
 
-                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
+                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                         {
                                             (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                             if ((sender as Button).IsSelected)
@@ -1428,17 +1413,21 @@
                                             }
                                         };
 
-                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
+                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                         {
                                             CommonPage.Instance.IsDrawerLockMode = true;
                                             var lightControl = new Phone.Device.AC.ACControl();
                                             UserView.HomePage.Instance.AddChidren(lightControl);
                                             UserView.HomePage.Instance.PageIndex += 1;
-                                            //lightControl.action = RefreshBodyView;
+                                            lightControl.IsDrawerLockMode = true;
                                             lightControl.Show(device, Room.CurrentRoom);
+                                            lightControl.action += (curDev, curRoom) =>
+                                            {
+                                                ReFreshEditDeviceAction(device, curRoom, functionView);
+                                            };
                                         };
 
-                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
+                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                     }
                                 }
                                 else if (device.CommonDevice.Type == DeviceType.DimmableLight)
@@ -1469,27 +1458,26 @@
                                         })
                                         { IsBackground = true }.Start();
 
-                                        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);
-                                        lightView.IsSelected = dimmableLight.OnOffStatus == 1;
-                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                        var functionView = new FunctionMainView(xx, yy);
+                                        itemView.AddChidren(functionView);
+                                        functionView.Init();
+                                        functionView.Tag = device;
+                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                                        functionView.SetStatuText(device.GetDeviceStatu());
+                                        functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
+                                        functionView.IsSelected = dimmableLight.OnOffStatus == 1;
+                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
 
-                                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-                                        if (dev == null)
+                                        if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
                                         {
-                                            lightView.CollectButton.IsSelected = false;
+                                            functionView.CollectButton.IsSelected = false;
                                         }
                                         else
                                         {
-                                            lightView.CollectButton.IsSelected = true;
+                                            functionView.CollectButton.IsSelected = true;
                                         }
 
-                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
+                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                         {
                                             (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                             if ((sender as Button).IsSelected)
@@ -1546,16 +1534,20 @@
                                             }
                                         };
 
-                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
+                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                         {
                                             CommonPage.Instance.IsDrawerLockMode = true;
                                             var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                                             UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                             UserView.HomePage.Instance.PageIndex += 1;
-                                            //dimmableLightControl.action = RefreshBodyView;
+                                            dimmableLightControl.IsDrawerLockMode = true;
                                             dimmableLightControl.Show(device, Room.CurrentRoom);
+                                            dimmableLightControl.action += (curDev, curRoom) =>
+                                            {
+                                                ReFreshEditDeviceAction(device, curRoom, functionView);
+                                            };
                                         };
-                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
+                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                     }
                                 }
                                 else if (device.CommonDevice.Type == DeviceType.IASZone)
@@ -1569,12 +1561,11 @@
                                     lightView.Tag = device;
                                     lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                     lightView.SetStatuText(device.GetDeviceStatu());
-                                    lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                                    lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
                                     lightView.IsSelected = ias.iASInfo?.Alarm1 == 1;
-                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
                                     lightView.CanControl(false);
-                                    var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-                                    if (dev == null)
+                                    if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
                                     {
                                         lightView.CollectButton.IsSelected = false;
                                     }
@@ -1630,12 +1621,11 @@
                                         lightView.Tag = device;
                                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                         lightView.SetStatuText(device.GetDeviceStatu());
-                                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                                        lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
                                         lightView.IsSelected = false;
-                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
                                         lightView.CanControl(false);
-                                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-                                        if (dev == null)
+                                        if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
                                         {
                                             lightView.CollectButton.IsSelected = false;
                                         }
@@ -1657,12 +1647,11 @@
                                     lightView.Tag = device;
                                     lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                     lightView.SetStatuText(device.GetDeviceStatu());
-                                    lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
-                                    lightView.IsSelected = dimmableLight.IsOnline == 1;
-                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                    lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
+                                    lightView.IsSelected = false;
+                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
                                     lightView.CanControl(false);
-                                    var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-                                    if (dev == null)
+                                    if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
                                     {
                                         lightView.CollectButton.IsSelected = false;
                                     }
@@ -1689,13 +1678,11 @@
                                     lightView.Tag = device;
                                     lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                     lightView.SetStatuText(device.GetDeviceStatu());
-                                    lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                                    lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
                                     lightView.CanControl(false);
-                                    lightView.IsSelected = device.CommonDevice.IsOnline == 1;
-                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
 
-                                    var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-                                    if (dev == null)
+                                    if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
                                     {
                                         lightView.CollectButton.IsSelected = false;
                                     }
@@ -1713,6 +1700,40 @@
                         });
                     //})
                     //{ IsBackground = true }.Start();
+                }
+            }
+        }
+
+        /// <summary>
+        /// ReFreshEditDeviceAction
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="curRoom"></param>
+        /// <param name="functionView"></param>
+        private void ReFreshEditDeviceAction(DeviceUI device, Common.Room curRoom, FunctionMainView functionView)
+        {
+            if (Common.Room.CurrentRoom.IsLove)
+            {
+                functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
+                if (Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
+                {
+                    ShowFunction();
+                }
+            }
+            else
+            {
+                if (curRoom.Id != Common.Room.CurrentRoom.Id)
+                {
+
+                    Common.Room.CurrentRoom.DeleteDevice(device.FileName);
+                    ShowFunction();
+                }
+                else
+                {
+                    functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                    functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice));
+                    functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName));
                 }
             }
         }
@@ -1752,6 +1773,7 @@
         /// </summary>
         private void ShowScene()
         {
+            functionSceneBodyView.RemoveAll();
             //閫夋嫨鍦烘櫙
             var sceneList = Room.CurrentRoom.SceneUIList;
             if (sceneList == null)
@@ -1787,8 +1809,9 @@
                     }
 
                     var sceneView = new SceneMainView(xx, yy);
-                    itemView.AddChidren(sceneView);
                     sceneView.Init(scene);
+                    itemView.AddChidren(sceneView);
+                    sceneView.CollectionAction += ShowScene;
                 }
                 GetDelayScene(sceneScrolView);
             }

--
Gitblit v1.8.0