From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 31 十二月 2020 17:01:18 +0800
Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs | 2241 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,121 insertions(+), 1,120 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
old mode 100755
new mode 100644
index 726615a..d2bf07a
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -8,1181 +8,1182 @@
 
 namespace Shared.Phone.UserCenter.DeviceBind
 {
-    /// <summary>
-    /// 鏅�氶潰鏉跨殑缁戝畾鐣岄潰銆愬彲缁戝畾澶氫釜鐩爣銆�
+  /// <summary>
+  /// 鏅�氶潰鏉跨殑缁戝畾鐣岄潰銆愬彲缁戝畾澶氫釜鐩爣銆�
+  /// </summary>
+  public class BindTargetsPage : BindCommonLayout
+  {
+    /// 鏋勯�犲嚱鏁�
     /// </summary>
-    public class BindTargetsPage : BindCommonLayout
+    /// <param name="doorLock"></param>
+    public BindTargetsPage(ZigBee.Device.Panel key)
     {
-        /// 鏋勯�犲嚱鏁�
-        /// </summary>
-        /// <param name="doorLock"></param>
-        public BindTargetsPage(ZigBee.Device.Panel key)
+      this.currentKey = key;
+    }
+
+    #region 鍙橀噺鐢虫槑
+    /// <summary>
+    /// 褰撳墠鎸夐敭瀵硅薄
+    /// </summary>
+    ZigBee.Device.Panel currentKey;
+    /// <summary>
+    /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
+    /// </summary>
+    VerticalFrameRefreshControl midVerticalRefreshLayout;
+    /// <summary>
+    /// 鎸夐敭褰撳墠绨嘔D
+    /// </summary>
+    int currentClusterID = 0;
+    /// <summary>
+    /// 绌烘暟鎹椂鐨勫浘鐗�
+    /// </summary>
+    Button entryStatusPic;
+    /// <summary>
+    /// 绌烘暟鎹殑鎻愮ず
+    /// </summary>
+    Button btnPicTip;
+    /// <summary>
+    /// 鎸夐敭缁戝畾琛ㄩ�氱煡
+    /// </summary>
+    Action<List<BindListResponseObj>> action;
+    /// <summary>
+    /// 璁惧琚粦瀹氶�氱煡
+    /// </summary>
+    Action<List<BindListResponseObj>> devicBindAction;
+    /// <summary>
+    /// 鏈湴璁惧鍒楄〃
+    /// </summary>
+    private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();
+    /// <summary>
+    /// 鏈湴鍦烘櫙鍒楄〃 
+    /// </summary>
+    private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };
+    /// <summary>
+    /// 绌烘暟鎹樉绀哄竷灞�
+    /// </summary>
+    FrameLayout blankFrameLayout;
+    /// <summary>
+    /// 鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑妯″紡澶х被鍨�
+    /// </summary>
+    List<int> typeModeList;
+    /// <summary>
+    /// 鏄惁鏀寔璇诲彇
+    /// </summary>
+    bool IsRead = false;
+
+    #endregion
+
+    /// <summary>
+    /// 鍒濆鍖栨寜閿暟鎹�
+    /// </summary>
+    void InitListInfo()
+    {
+      System.Threading.Tasks.Task.Run(async () =>
+      {
+        try
         {
-            this.currentKey = key;
-        }
+          localDeviceList.Clear();
+          scList.Clear();
+                //鑾峰彇鏈湴璁惧鍒楄〃
+                foreach (var dev in Shared.Common.LocalDevice.Current.listAllDevice)
+          {
+            localDeviceList.Add(dev);
+          }
+                //鑾峰彇鏈湴鍦烘櫙鍒楄〃
+                scList = HdlSceneLogic.Current.GetAllRoomSceneList();
 
-        #region 鍙橀噺鐢虫槑
-        /// <summary>
-        /// 褰撳墠鎸夐敭瀵硅薄
-        /// </summary>
-        ZigBee.Device.Panel currentKey;
-        /// <summary>
-        /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
-        /// </summary>
-        VerticalFrameRefreshControl midVerticalRefreshLayout;
-        /// <summary>
-        /// 鎸夐敭褰撳墠绨嘔D
-        /// </summary>
-        int currentClusterID = 0;
-        /// <summary>
-        /// 绌烘暟鎹椂鐨勫浘鐗�
-        /// </summary>
-        Button entryStatusPic;
-        /// <summary>
-        /// 绌烘暟鎹殑鎻愮ず
-        /// </summary>
-        Button btnPicTip;
-        /// <summary>
-        /// 鎸夐敭缁戝畾琛ㄩ�氱煡
-        /// </summary>
-        Action<List<BindListResponseObj>> action;
-        /// <summary>
-        /// 璁惧琚粦瀹氶�氱煡
-        /// </summary>
-        Action<List<BindListResponseObj>> devicBindAction;
-        /// <summary>
-        /// 鏈湴璁惧鍒楄〃
-        /// </summary>
-        private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();
-        /// <summary>
-        /// 鏈湴鍦烘櫙鍒楄〃 
-        /// </summary>
-        private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };
-        /// <summary>
-        /// 绌烘暟鎹樉绀哄竷灞�
-        /// </summary>
-        FrameLayout blankFrameLayout;
-        /// <summary>
-        /// 鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑妯″紡澶х被鍨�
-        /// </summary>
-        List<int> typeModeList;
-        /// <summary>
-        /// 鏄惁鏀寔璇诲彇
-        /// </summary>
-        bool IsRead = false;
-
-        #endregion
-
-        /// <summary>
-        /// 鍒濆鍖栨寜閿暟鎹�
-        /// </summary>
-        void InitListInfo()
-        {
-            System.Threading.Tasks.Task.Run(async () =>
+                //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
+                typeModeList = await GetTypeMode();
+                #region 璇诲彇闈㈡澘褰撳墠妯″紡
+                //璇诲彇鎸夐敭褰撳墠妯″紡
+                var tempDeata = HdlDeviceBindLogic.Current.ReadPanelConfigureInfoAsync(currentKey);
+          if (tempDeata != null && tempDeata.deviceStatusReportData != null)
+          {
+            foreach (var attr in tempDeata.deviceStatusReportData.AttriBute)
             {
-                try
+              currentKey.panelMode = attr.AttriButeData;
+              if (currentKey.panelMode == 1)
+              {
+                currentClusterID = 6;
+              }
+              else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
+              {
+                currentClusterID = 6;
+              }
+              else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
+              {
+                currentClusterID = 8;
+              }
+              else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
+              {
+                currentClusterID = 258;
+              }
+
+                    //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣
+                    GetDeviceBindResponseAllData getBindList = null;
+              if (IsRead)
+              {
+                getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey);
+                var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                if (getBindList != null && getBindList.getAllBindResponseData != null)
                 {
-                    localDeviceList.Clear();
-                    scList.Clear();
-                    //鑾峰彇鏈湴璁惧鍒楄〃
-                    foreach (var dev in Shared.Common.LocalDevice.Current.listAllDevice)
+                  currentKey.bindList.Clear();
+                  foreach (var b in getBindList.getAllBindResponseData.BindList)
+                  {
+                    if (b.BindCluster == currentClusterID)
                     {
-                        localDeviceList.Add(dev);
-                    }
-                    //鑾峰彇鏈湴鍦烘櫙鍒楄〃
-                    scList = HdlSceneLogic.Current.GetAllRoomSceneList();
+                      if (b.BindCluster == 6)
+                      {
 
-                    //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
-                    typeModeList = await GetTypeMode();
-                    #region 璇诲彇闈㈡澘褰撳墠妯″紡
-                    //璇诲彇鎸夐敭褰撳墠妯″紡
-                    var tempDeata = HdlDeviceBindLogic.Current.ReadPanelConfigureInfoAsync(currentKey);
-                    if (tempDeata != null && tempDeata.deviceStatusReportData != null)
-                    {
-                        foreach (var attr in tempDeata.deviceStatusReportData.AttriBute)
+                        if (b.BindType == 2)
                         {
-                            currentKey.panelMode = attr.AttriButeData;
-                            if (currentKey.panelMode == 1)
-                            {
-                                currentClusterID = 6;
-                            }
-                            else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
-                            {
-                                currentClusterID = 6;
-                            }
-                            else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
-                            {
-                                currentClusterID = 8;
-                            }
-                            else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
-                            {
-                                currentClusterID = 258;
-                            }
-
-                            //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣
-                            GetDeviceBindResponseAllData getBindList = null;
-                            if (IsRead)
-                            {
-                                getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey);
-                                var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                                var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                                if (getBindList != null && getBindList.getAllBindResponseData != null)
-                                {
-                                    currentKey.bindList.Clear();
-                                    foreach (var b in getBindList.getAllBindResponseData.BindList)
-                                    {
-                                        if (b.BindCluster == currentClusterID)
-                                        {
-                                            if (b.BindCluster == 6)
-                                            {
-
-                                                if (b.BindType == 2)
-                                                {
-                                                    bindSceneListTemp.Add(b);
-                                                }
-                                                else
-                                                {
-                                                    bindDeviceListTemp.Add(b);
-                                                }
-                                            }
-                                            else
-                                            {
-                                                if (currentClusterID == 8)
-                                                {
-                                                    if (b.BindCluster == 8)
-                                                    {
-                                                        currentKey.bindList.Add(b);
-                                                    }
-                                                }
-                                                else
-                                                {
-                                                    currentKey.bindList.Add(b);
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                                else
-                                {
-                                    Application.RunOnMainThread(() =>
-                                    {
-                                        CommonPage.Loading.Hide();
-                                        midVerticalRefreshLayout.EndHeaderRefreshing();
-                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                        return;
-                                    });
-                                }
-                                if (currentKey.panelMode == 1)
-                                {
-                                    currentKey.bindList = bindSceneListTemp;
-                                    currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddScene);
-                                }
-                                else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
-                                {
-                                    currentKey.bindList = bindDeviceListTemp;
-                                    currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch);
-                                }
-                                else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
-                                {
-                                    currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer);
-                                }
-                                else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
-                                {
-                                    currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddCurtain);
-                                }
-                            }
-                            currentKey.ReSave();
+                          bindSceneListTemp.Add(b);
                         }
-                        #endregion 
-                        Application.RunOnMainThread(() =>
+                        else
                         {
-                            RefreshList();
-                            CommonPage.Loading.Hide();
-                            midVerticalRefreshLayout.EndHeaderRefreshing();
-                        });
-                    }
-                    else
-                    {
-                        Application.RunOnMainThread(() =>
+                          bindDeviceListTemp.Add(b);
+                        }
+                      }
+                      else
+                      {
+                        if (currentClusterID == 8)
                         {
-                            CommonPage.Loading.Hide();
-                            midVerticalRefreshLayout.EndHeaderRefreshing();
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "108_ 6533" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                        });
-                        return;
-                    }
-                }
-                catch { }
-            });
-        }
-
-        /// <summary>
-        /// 鎸夐敭缁戝畾椤垫樉绀�
-        /// </summary>
-        public void Show()
-        {
-            #region TopFrameLayout
-            this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.PanelBindTargets));
-            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
-            {
-                RemoveFromParent();
-            };
-            this.btnBack.MouseUpEventHandler += eHandlerBack;
-            this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
-            this.MidFrameLayout(this);
-
-            var btnAddFrameLayout = new FrameLayout()
-            {
-                X = Application.GetRealWidth(772 - 58),
-                Width = Application.GetRealWidth(192),
-            };
-            this.titleFrameLayout.AddChidren(btnAddFrameLayout);
-
-            var btnBindAdd = new Button
-            {
-                X = Application.GetRealWidth(62),
-                Height = Application.GetMinReal(72),
-                Width = Application.GetMinReal(72),
-                UnSelectedImagePath = "BindPic/BindAdd.png",
-            };
-            btnAddFrameLayout.AddChidren(btnBindAdd);
-            #endregion
-
-            #region eHandlerAdd
-            EventHandler<MouseEventArgs> eHandlerAdd = (sender, e) =>
-            {
-                if (currentKey.bindList.Count != 0)
-                {
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene))
-                    {
-                        currentClusterID = 6;
-                        currentKey.panelMode = 1;
-                        var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey);
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addScenePage.Show();
-
-                        Action<List<BindListResponseObj>> action = (obj) =>
+                          if (b.BindCluster == 8)
+                          {
+                            currentKey.bindList.Add(b);
+                          }
+                        }
+                        else
                         {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addScenePage.action += action;
+                          currentKey.bindList.Add(b);
+                        }
+                      }
                     }
-
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch))
-                    {
-                        currentClusterID = 6;
-                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addDevicePage.Show();
-
-                        devicBindAction = (obj) =>
-                        {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addDevicePage.actionAddDevicePage += devicBindAction;
-                    }
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer))
-                    {
-                        currentClusterID = 8;
-                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addDevicePage.Show();
-
-                        Action<List<BindListResponseObj>> action = (obj) =>
-                        {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addDevicePage.actionAddDevicePage += action;
-                    }
-
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain))
-                    {
-                        currentClusterID = 258;
-                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addDevicePage.Show();
-
-                        Action<List<BindListResponseObj>> action = (obj) =>
-                        {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addDevicePage.actionAddDevicePage += action;
-                    }
+                  }
                 }
                 else
                 {
-                    currentKey.panelMode = 65535;
-                    SideslipFramelayout();
+                  Application.RunOnMainThread(() =>
+                        {
+                                CommonPage.Loading.Hide();
+                                midVerticalRefreshLayout.EndHeaderRefreshing();
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                return;
+                              });
                 }
-            };
-            btnBindAdd.MouseDownEventHandler += eHandlerAdd;
-            btnAddFrameLayout.MouseDownEventHandler += eHandlerAdd;
-            #endregion
-            CommonPage.Loading.Start("");
-            middleFrameLayout();
-            if (currentKey.bindList.Count == 0)
-            {
-                IsRead = true;
-            }
-            else
-            {
-                IsRead = false;
-            }
-            InitListInfo();
-
-        }
-
-        /// <summary>
-        /// 涓儴甯冨眬
-        /// </summary>
-        void middleFrameLayout()
-        {
-            midVerticalRefreshLayout = new VerticalFrameRefreshControl(29)
-            {
-                Height = this.midFrameLayout.Height + 1,
-            };
-            this.midFrameLayout.AddChidren(midVerticalRefreshLayout);
-            midVerticalRefreshLayout.BeginHeaderRefreshingAction += () =>
-            {
-                midVerticalRefreshLayout.BeginHeaderRefreshing();
-                IsRead = true;
-                InitListInfo();
-            };
-
-            BlankPicUI();
-        }
-
-        /// <summary>
-        /// 绌烘暟鎹甎I鏄剧ず
-        /// </summary>
-        void BlankPicUI()
-        {
-            blankFrameLayout = new FrameLayout
-            {
-            };
-            midVerticalRefreshLayout.AddChidren(blankFrameLayout);
-
-            entryStatusPic = new Button
-            {
-                X = Application.GetRealWidth(213),
-                Y = Application.GetRealHeight(418),
-                UnSelectedImagePath = "BindPic/BindEmptyPic.png",
-                Visible = false,
-            };
-            blankFrameLayout.AddChidren(entryStatusPic);
-
-            btnPicTip = new Button
-            {
-                Y = Application.GetRealHeight(1020),
-                Text = Language.StringByID(R.MyInternationalizationString.NoControlTargets),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                Gravity = Gravity.CenterHorizontal,
-                Visible = false,
-                TextSize = 12,
-            };
-            blankFrameLayout.AddChidren(btnPicTip);
-        }
-        /// <summary>
-        /// 鎸夐敭缁戝畾琛ㄦ樉绀�
-        /// </summary> 
-        async void RefreshList()
-        {
-            midVerticalRefreshLayout.RemoveAll();
-            this.midFrameLayout.RemoveAll();
-            middleFrameLayout();
-            #region 鏁版嵁澶勭悊 
-            if (currentKey.bindList.Count == 0)
-            {
-                entryStatusPic.Height = Application.GetRealHeight(556);
-                entryStatusPic.Width = Application.GetRealWidth(654);
-                btnPicTip.Height = Application.GetRealHeight(49);
-                btnPicTip.Visible = true;
-                entryStatusPic.Visible = true;
-                blankFrameLayout.Height = midVerticalRefreshLayout.Height;
-            }
-            else
-            {
-                entryStatusPic.Height = Application.GetRealHeight(0);
-                entryStatusPic.Width = Application.GetRealWidth(0);
-                btnPicTip.Height = Application.GetRealHeight(0);
-                btnPicTip.Visible = false;
-                entryStatusPic.Visible = false;
-                blankFrameLayout.Height = Application.GetRealHeight(0);
                 if (currentKey.panelMode == 1)
                 {
-                    midVerticalRefreshLayout.Y = Application.GetRealHeight(0);
+                  currentKey.bindList = bindSceneListTemp;
+                  currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddScene);
                 }
-                else
+                else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
                 {
-                    BindModeDisplay();
+                  currentKey.bindList = bindDeviceListTemp;
+                  currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch);
                 }
-                int curIndex = 0;
-                for (int i = 0; i < currentKey.bindList.Count; i++)
+                else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
                 {
-                    curIndex = i;
-                    var bindDevice = currentKey.bindList[i];
-                    SceneUI curSceneUI = null;
-                    bool isExistScene = false;
-
-                    var rowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2);
-                    rowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
-                    midVerticalRefreshLayout.AddChidren2(rowLayout);
-                    rowLayout.frameTable.UseClickStatu = false;
-                    var devicePic = rowLayout.frameTable.AddLeftIcon();
-                    devicePic.Y = Application.GetRealHeight(49);
-                    devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png";
-
-                    #region 缁戝畾鏁版嵁澶勭悊
-                    int currentIndex = i;
-                    var btnBindNameText = "";
-                    var btnFloorRoomNameText = "";
-                    if (currentIndex == currentKey.bindList.Count - 1)
-                    {
-                        rowLayout.LineColor = Shared.Common.ZigbeeColor.Current.XMWhite;
-                    }
-                    foreach (var sc in currentKey.bindList)
-                    {
-                        if (sc.BindType == 2)
-                        {
-                            isExistScene = true;
-                        }
-                    }
-                    if (isExistScene)
-                    {
-                        curSceneUI = HdlSceneLogic.Current.GetSceneUIBySceneId(bindDevice.BindScenesId);
-                        devicePic.UnSelectedImagePath = "Scene/SceneIcon.png";
-                        if (curSceneUI == null)
-                        {
-                            btnBindNameText = Language.StringByID(R.MyInternationalizationString.OffLineScene) + "_" + "ID" + "_" + bindDevice.BindScenesId.ToString();
-                        }
-                        else
-                        {
-                            btnBindNameText = curSceneUI.Name;
-                            string myName = HdlSceneLogic.Current.GetZoneById(curSceneUI.Id);
-                            if (myName != null)
-                            {
-                                btnFloorRoomNameText = myName;
-                            }
-                            else
-                            {
-                                btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
-                            }
-                        }
-                    }
-                    else
-                    {
-                        //琚粦瀹氳澶囧浘鐗�
-                        foreach (var dev in localDeviceList)
-                        {
-                            var tempDev = localDeviceList.Find(obj => obj.DeviceAddr == bindDevice.BindMacAddr && obj.DeviceEpoint == bindDevice.BindEpoint);
-                            if (tempDev != null)
-                            {
-                                //鑾峰彇璁惧鎵�灞炴埧闂�
-                                var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev);
-
-                                if (tempDevRoom != null)
-                                {
-                                    var tempDevFloorId = tempDevRoom.FloorId;
-                                    //鑾峰彇鎴块棿鐨勫悕瀛�
-                                    var tempDevRoomName = tempDevRoom.Name;
-                                    //鑾峰彇妤煎眰鐨勫悕瀛�
-                                    var tempDevFloorName = HdlResidenceLogic.Current.GetFloorNameById(tempDevFloorId);
-                                    if (string.IsNullOrEmpty(tempDevFloorName))
-                                    {
-                                        if (string.IsNullOrEmpty(tempDevRoomName))
-                                        {
-                                            btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
-                                        }
-                                        else
-                                        {
-                                            btnFloorRoomNameText = tempDevRoomName;
-                                        }
-                                    }
-                                    else
-                                    {
-                                        if (string.IsNullOrEmpty(tempDevRoomName))
-                                        {
-                                            btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
-                                        }
-                                        else
-                                        {
-                                            btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName;
-                                        }
-                                    }
-                                }
-                                else
-                                {
-                                    btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
-                                }
-
-                                devicePic.UnSelectedImagePath = tempDev.IconPath;
-                                devicePic.Text = "";
-
-                                if (string.IsNullOrEmpty(tempDev.DeviceEpointName))
-                                {
-                                    btnBindNameText = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit);
-                                }
-                                else
-                                {
-                                    btnBindNameText = tempDev.DeviceEpointName;
-                                }
-                            }
-                            else
-                            {
-                                btnBindNameText = bindDevice.BindMacAddr + "_" + bindDevice.BindEpoint;
-                                devicePic.TextAlignment = TextAlignment.CenterLeft;
-                                devicePic.TextColor = UserCenterColor.Current.Gray;
-                                devicePic.Text = Language.StringByID(R.MyInternationalizationString.uOffLine);
-                            }
-                        }
-                    }
-
-                    var btnBindName = rowLayout.frameTable.AddTopView(btnBindNameText, 800);
-                    var btnFloorRoomName = rowLayout.frameTable.AddBottomView(btnFloorRoomNameText, 800);
-                    rowLayout.frameTable.AddBottomLine();
-                    var btnDel = rowLayout.AddDeleteControl();
-                    btnDel.ButtonClickEvent += (sender, e) =>
-                    {
-                        RemoveTargets(bindDevice, btnDel);
-                    };
-                    #endregion
+                  currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer);
                 }
-                midVerticalRefreshLayout.AdjustTableHeight(Application.GetRealHeight(23));
+                else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
+                {
+                  currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddCurtain);
+                }
+              }
+              currentKey.ReSave();
             }
-            #endregion
+                  #endregion
+                  Application.RunOnMainThread(() =>
+                  {
+                    RefreshList();
+                    CommonPage.Loading.Hide();
+                    midVerticalRefreshLayout.EndHeaderRefreshing();
+                  });
+          }
+          else
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    CommonPage.Loading.Hide();
+                    midVerticalRefreshLayout.EndHeaderRefreshing();
+                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "108_ 6533" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                  });
+            return;
+          }
         }
+        catch { }
+      });
+    }
 
-        /// <summary>
-        /// 褰撳墠鎸夐敭妯″紡鏄剧ず
-        /// </summary>
-        public void BindModeDisplay()
+    /// <summary>
+    /// 鎸夐敭缁戝畾椤垫樉绀�
+    /// </summary>
+    public void Show()
+    {
+      #region TopFrameLayout
+      this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.PanelBindTargets));
+      EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
+      {
+        RemoveFromParent();
+      };
+      this.btnBack.MouseUpEventHandler += eHandlerBack;
+      this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
+      this.MidFrameLayout(this);
+
+      var btnAddFrameLayout = new FrameLayout()
+      {
+        X = Application.GetRealWidth(772 - 58),
+        Width = Application.GetRealWidth(192),
+      };
+      this.titleFrameLayout.AddChidren(btnAddFrameLayout);
+
+      var btnBindAdd = new Button
+      {
+        X = Application.GetRealWidth(62),
+        Height = Application.GetMinReal(72),
+        Width = Application.GetMinReal(72),
+        UnSelectedImagePath = "BindPic/BindAdd.png",
+      };
+      btnAddFrameLayout.AddChidren(btnBindAdd);
+      #endregion
+
+      #region eHandlerAdd
+      EventHandler<MouseEventArgs> eHandlerAdd = (sender, e) =>
+      {
+        if (currentKey.bindList.Count != 0)
         {
-            var modeRowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2);
-            modeRowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
-            midVerticalRefreshLayout.AddChidren2(modeRowLayout);
-            modeRowLayout.frameTable.UseClickStatu = false;
-            modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 400);
-            var btnKeyModeTipText = "";
-            #region 褰撳墠妯″紡鏂囨湰鏄剧ず
-            switch (currentKey.panelMode)
-            {
-                case 100:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOn);
-                    break;
-                case 101:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffoFF);
-                    break;
-                case 102:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOnOff);
-                    break;
-                case 200:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode1);
-                    break;
-                case 201:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode2);
-                    break;
-                case 203:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode3);
-                    break;
-                case 204:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode4);
-                    break;
-                case 205:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode5);
-                    break;
-                case 300:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUp);
-                    break;
-                case 301:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDown);
-                    break;
-                case 302:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdStop);
-                    break;
-                case 303:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUpStop);
-                    break;
-                case 304:
-                    btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDownStop);
-                    break;
-            }
-            #endregion
-            modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 800);
-            modeRowLayout.frameTable.AddBottomLine();
-            var btnDel = modeRowLayout.AddDeleteControl();
-            //涓�閿竻闄ゆ寜閿簨浠�
-            btnDel.ButtonClickEvent += async (sender, e) =>
-            {
-                string msg = Language.StringByID(R.MyInternationalizationString.ClearAllTargets).Replace("{0}", "\r\n");
-                var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
-                alert.Show();
-                //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
-                alert.ConfirmClickEvent += () =>
-                 {
-                     bool isDelSuccess = false;
-                     System.Threading.Tasks.Task.Run(() =>
-                     {
-                         try
-                         {
-                             Application.RunOnMainThread(() =>
-                             {
-                                 CommonPage.Loading.Start("");
-                             });
-                             var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
-                             if (bindResult != null && bindResult.clearBindInfoResponseData != null)
-                             {
-                                 if (bindResult.clearBindInfoResponseData.Result != 0)
-                                 {
-                                     Application.RunOnMainThread(() =>
-                                     {
-                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
-                                         CommonPage.Loading.Hide();
-                                     });
-                                     return;
-                                 }
-                                 else
-                                 {
-                                     var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
-                                     if (temp != null && temp.setWritableValueResponData?.Status != 0)
-                                     {
-                                         var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
-                                         if (temp1 != null && temp1.setWritableValueResponData?.Status != 0)
-                                         {
-                                             Application.RunOnMainThread(() =>
-                                             {
-                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene))
+          {
+            currentClusterID = 6;
+            currentKey.panelMode = 1;
+            var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey);
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addScenePage.Show();
 
-                                             });
-                                         }
-                                         else
-                                         {
-                                             isDelSuccess = true;
-                                         }
-                                     }
-                                     else
-                                     {
-                                         isDelSuccess = true;
-                                     }
-                                 }
-                             }
-                             else
-                             {
-                                 Application.RunOnMainThread(() =>
-                                 {
-                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
-                                 });
-                             }
-                         }
-                         catch { }
-                         finally
-                         {
-                             Application.RunOnMainThread(() =>
-                             {
-                                 if (isDelSuccess)
-                                 {
-                                     currentKey.panelMode = 65535;
-                                     currentKey.bindList.Clear();
-                                     RefreshList();
-                                     //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
-                                     currentKey.ReSave();
-                                 }
-                                 CommonPage.Loading.Hide();
-                             });
-                         }
-                     });
-                 };
-            };
+            Action<List<BindListResponseObj>> action = (obj) =>
+                  {
+                    currentKey.bindList = obj;
+                    RefreshList();
+                  };
+            addScenePage.action += action;
+          }
+
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch))
+          {
+            currentClusterID = 6;
+            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch");
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addDevicePage.Show();
+
+            devicBindAction = (obj) =>
+                  {
+                    currentKey.bindList = obj;
+                    RefreshList();
+                  };
+            addDevicePage.actionAddDevicePage += devicBindAction;
+          }
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer))
+          {
+            currentClusterID = 8;
+            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer");
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addDevicePage.Show();
+
+            Action<List<BindListResponseObj>> action = (obj) =>
+                  {
+                    currentKey.bindList = obj;
+                    RefreshList();
+                  };
+            addDevicePage.actionAddDevicePage += action;
+          }
+
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain))
+          {
+            currentClusterID = 258;
+            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain");
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addDevicePage.Show();
+
+            Action<List<BindListResponseObj>> action = (obj) =>
+                  {
+                    currentKey.bindList = obj;
+                    RefreshList();
+                  };
+            addDevicePage.actionAddDevicePage += action;
+          }
         }
-
-        /// <summary>
-        /// 渚ц竟瀵艰埅鏍�
-        /// </summary>
-        async void SideslipFramelayout()
+        else
         {
-            #region UI
-            var dialog = new Dialog { };
-            dialog.Show();
-
-            var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
-            dialog.AddChidren(flMain);
-            flMain.MouseUpEventHandler += (sender11, e11) =>
-            {
-                dialog.Close();
-            };
-
-            var sidelipFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetMinReal(628),
-                Width = Application.GetMinReal(415),
-                Y = Application.GetRealHeight(115 + 45),
-                X = Application.GetRealWidth(605),
-                BackgroundImagePath = "DoorLock/SideslipPic.png",
-            };
-            flMain.AddChidren(sidelipFrameLayout);
-
-            var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
-            {
-                Height = Application.GetRealHeight(600),
-                Y = Application.GetRealHeight(28),
-            };
-            sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
-            #endregion
-
-            Button oldbuttonText = null;
-            string oldKeySelectModeText = currentKey.currentKeySelectModeText;
-
-            if (typeModeList == null)
-            {
-                //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
-                Application.RunOnMainThread(() =>
-                {
-                    CommonPage.Loading.Start();
-                });
-                typeModeList = await GetTypeMode();
-                if (typeModeList == null)
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                        CommonPage.Loading.Hide();
-                    });
-                    dialog.Close();
-                    return;
-                }
-                else
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        CommonPage.Loading.Hide();
-                    });
-                }
-            }
-
-            int count = 0;
-            foreach (var value in typeModeList)
-            {
-                count++;
-                #region  rowView
-                var rowView = new FrameLayout()
-                {
-                    Height = Application.GetRealHeight(150),
-                };
-                sidelipVerticalScrolViewLayout.AddChidren(rowView);
-
-                var btnMethodText = new Button()
-                {
-                    Width = Application.GetRealWidth(268),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(115),
-                    Y = Application.GetRealHeight(69),
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                    TextSize = 14,
-                    IsBold = false,
-                    TextAlignment = TextAlignment.CenterLeft,
-                };
-                rowView.AddChidren(btnMethodText);
-
-                var line2 = new Button()
-                {
-                    Y = rowView.Height - 1,
-                    X = Application.GetRealWidth(115),
-                    Width = Application.GetRealWidth(300),
-                    Height = 1,
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
-                };
-                rowView.AddChidren(line2);
-
-                if (string.IsNullOrEmpty(currentKey.currentKeySelectModeText) && value == 1)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                #endregion
-
-                #region 鏁版嵁澶勭悊
-                switch (value)
-                {
-                    case 1:
-                        btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddScene);
-                        break;
-                    case 100:
-                        btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddSwitch);
-                        break;
-                    case 200:
-                        btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddDimmer);
-                        break;
-                    case 300:
-                        btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddCurtain);
-                        line2.Visible = false;
-                        break;
-                }
-
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300)
-                {
-                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    btnMethodText.IsBold = true;
-                    oldbuttonText = btnMethodText;
-                }
-                #endregion
-
-                //绫诲瀷浜嬩欢閫変腑澶勭悊
-                EventHandler<MouseEventArgs> eHandler = (sender, e) =>
-                {
-                    if (!btnMethodText.IsSelected)
-                    {
-                        if (oldbuttonText != null)
-                        {
-                            oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
-                        }
-                        oldbuttonText = btnMethodText;
-                        currentKey.currentKeySelectModeText = btnMethodText.Text;
-                        oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    }
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene))
-                    {
-                        var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey);
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addScenePage.Show();
-
-                        Action<List<BindListResponseObj>> action = (obj) =>
-                        {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addScenePage.action += action;
-                        dialog.Close();
-                    }
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch))
-                    {
-                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addDevicePage.Show();
-
-                        Action<List<BindListResponseObj>> action = (obj) =>
-                        {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addDevicePage.actionAddDevicePage += action;
-                        dialog.Close();
-                    }
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer))
-                    {
-                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addDevicePage.Show();
-
-                        Action<List<BindListResponseObj>> action = (obj) =>
-                        {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addDevicePage.actionAddDevicePage += action;
-                        dialog.Close();
-                    }
-                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain))
-                    {
-                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        addDevicePage.Show();
-
-                        Action<List<BindListResponseObj>> action = (obj) =>
-                        {
-                            currentKey.bindList = obj;
-                            RefreshList();
-                        };
-                        addDevicePage.actionAddDevicePage += action;
-                        dialog.Close();
-                    }
-                };
-                btnMethodText.MouseUpEventHandler += eHandler;
-                rowView.MouseUpEventHandler += eHandler;
-            }
+          currentKey.panelMode = 65535;
+          SideslipFramelayout();
         }
+      };
+      btnBindAdd.MouseDownEventHandler += eHandlerAdd;
+      btnAddFrameLayout.MouseDownEventHandler += eHandlerAdd;
+      #endregion
+      CommonPage.Loading.Start("");
+      middleFrameLayout();
+      if (currentKey.bindList.Count == 0)
+      {
+        IsRead = true;
+      }
+      else
+      {
+        IsRead = false;
+      }
+      InitListInfo();
 
-        /// <summary>
-        /// 鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫�
-        /// </summary>
-        /// <returns></returns>
-        private async System.Threading.Tasks.Task<List<int>> GetTypeMode()
+    }
+
+    /// <summary>
+    /// 涓儴甯冨眬
+    /// </summary>
+    void middleFrameLayout()
+    {
+      midVerticalRefreshLayout = new VerticalFrameRefreshControl(29)
+      {
+        Height = this.midFrameLayout.Height + 1,
+      };
+      this.midFrameLayout.AddChidren(midVerticalRefreshLayout);
+      midVerticalRefreshLayout.BeginHeaderRefreshingAction += () =>
+      {
+        midVerticalRefreshLayout.BeginHeaderRefreshing();
+        IsRead = true;
+        InitListInfo();
+      };
+
+      BlankPicUI();
+    }
+
+    /// <summary>
+    /// 绌烘暟鎹甎I鏄剧ず
+    /// </summary>
+    void BlankPicUI()
+    {
+      blankFrameLayout = new FrameLayout
+      {
+      };
+      midVerticalRefreshLayout.AddChidren(blankFrameLayout);
+
+      entryStatusPic = new Button
+      {
+        X = Application.GetRealWidth(213),
+        Y = Application.GetRealHeight(418),
+        UnSelectedImagePath = "BindPic/BindEmptyPic.png",
+        Visible = false,
+      };
+      blankFrameLayout.AddChidren(entryStatusPic);
+
+      btnPicTip = new Button
+      {
+        Y = Application.GetRealHeight(1020),
+        Text = Language.StringByID(R.MyInternationalizationString.NoControlTargets),
+        TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+        Gravity = Gravity.CenterHorizontal,
+        Visible = false,
+        TextSize = 12,
+      };
+      blankFrameLayout.AddChidren(btnPicTip);
+    }
+    /// <summary>
+    /// 鎸夐敭缁戝畾琛ㄦ樉绀�
+    /// </summary> 
+    async void RefreshList()
+    {
+      midVerticalRefreshLayout.RemoveAll();
+      this.midFrameLayout.RemoveAll();
+      middleFrameLayout();
+      #region 鏁版嵁澶勭悊 
+      if (currentKey.bindList.Count == 0)
+      {
+        entryStatusPic.Height = Application.GetRealHeight(556);
+        entryStatusPic.Width = Application.GetRealWidth(654);
+        btnPicTip.Height = Application.GetRealHeight(49);
+        btnPicTip.Visible = true;
+        entryStatusPic.Visible = true;
+        blankFrameLayout.Height = midVerticalRefreshLayout.Height;
+      }
+      else
+      {
+        entryStatusPic.Height = Application.GetRealHeight(0);
+        entryStatusPic.Width = Application.GetRealWidth(0);
+        btnPicTip.Height = Application.GetRealHeight(0);
+        btnPicTip.Visible = false;
+        entryStatusPic.Visible = false;
+        blankFrameLayout.Height = Application.GetRealHeight(0);
+        if (currentKey.panelMode == 1)
         {
-            //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
-            if (Common.Config.Instance.Home.IsVirtually == true)
+          midVerticalRefreshLayout.Y = Application.GetRealHeight(0);
+        }
+        else
+        {
+          BindModeDisplay();
+        }
+        int curIndex = 0;
+        for (int i = 0; i < currentKey.bindList.Count; i++)
+        {
+          curIndex = i;
+          var bindDevice = currentKey.bindList[i];
+          SceneUI curSceneUI = null;
+          bool isExistScene = false;
+
+          var rowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2);
+          rowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
+          midVerticalRefreshLayout.AddChidren2(rowLayout);
+          rowLayout.frameTable.UseClickStatu = false;
+
+          var devicePic = rowLayout.frameTable.AddLeftIcon();
+          devicePic.Y = Application.GetRealHeight(49);
+          devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png";
+
+          #region 缁戝畾鏁版嵁澶勭悊
+          int currentIndex = i;
+          var btnBindNameText = "";
+          var btnFloorRoomNameText = "";
+          if (currentIndex == currentKey.bindList.Count - 1)
+          {
+            rowLayout.LineColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+          }
+          foreach (var sc in currentKey.bindList)
+          {
+            if (sc.BindType == 2)
             {
-                //鍒欓粯璁ゅ叏閮ㄥ姛鑳介兘缁欏畠
-                typeModeList = new List<int>() { 1, 100, 200, 300, 0, 101, 102 };
-                return typeModeList;
+              isExistScene = true;
             }
-            if (typeModeList != null)
+          }
+          if (isExistScene)
+          {
+            curSceneUI = HdlSceneLogic.Current.GetSceneUIBySceneId(bindDevice.BindScenesId);
+            devicePic.UnSelectedImagePath = "Scene/SceneIcon.png";
+            if (curSceneUI == null)
             {
-                typeModeList.Clear();
-            }
-            if (currentKey.privateFuncSecondLevelList.Count == 0 || currentKey.privateFuncSecondLevelList.Contains(1) == false || currentKey.privateFuncSecondLevelList.Contains(100) == false || currentKey.privateFuncSecondLevelList.Contains(200) == false || currentKey.privateFuncSecondLevelList.Contains(300) == false)
-            {
-                //鑾峰彇绗簩绾у姛鑳�
-                typeModeList = await currentKey.GetPanelDeviceFunctionLevel2(256);
-                if (typeModeList == null)
-                {
-                    return null;
-                }
-                currentKey.privateFuncSecondLevelList = typeModeList;
+              btnBindNameText = Language.StringByID(R.MyInternationalizationString.OffLineScene) + "_" + "ID" + "_" + bindDevice.BindScenesId.ToString();
             }
             else
             {
-                typeModeList = currentKey.privateFuncSecondLevelList;
+              btnBindNameText = curSceneUI.Name;
+              string myName = HdlSceneLogic.Current.GetZoneById(curSceneUI.Id);
+              if (myName != null)
+              {
+                btnFloorRoomNameText = myName;
+              }
+              else
+              {
+                btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+              }
             }
-            return typeModeList;
-        }
-
-        /// <summary>
-        /// 鍒犻櫎褰撳墠鐩爣鏂规硶
-        /// </summary>
-        /// <param name="bindDevice"></param>
-        /// <param name="btnDel"></param>
-        /// <returns></returns>
-        private int RemoveTargets(BindListResponseObj bindDevice, Button btnDel)
-        {
-            int result = -1;
-            var delDevice = new DelDeviceBindData();
-            delDevice.DeviceAddr = currentKey.DeviceAddr;
-            delDevice.Epoint = currentKey.DeviceEpoint;
-
-            if (bindDevice.BindType == 0 || bindDevice.BindType == 1)
+          }
+          else
+          {
+            //琚粦瀹氳澶囧浘鐗�
+            foreach (var dev in localDeviceList)
             {
-                var removeDevice = new RemoveBindListObj();
-                removeDevice.BindCluster = bindDevice.BindCluster;
-                removeDevice.BindType = 0;
-                removeDevice.BindMacAddr = bindDevice.BindMacAddr;
-                removeDevice.BindEpoint = bindDevice.BindEpoint;
-                delDevice.RemoveBindList.Add(removeDevice);
-                //鏄寒搴﹀啀娆″彂鍒犻櫎6鐨勫懡浠�
-                if (currentClusterID == 8)
+              var tempDev = localDeviceList.Find(obj => obj.DeviceAddr == bindDevice.BindMacAddr && obj.DeviceEpoint == bindDevice.BindEpoint);
+              if (tempDev != null)
+              {
+                //鑾峰彇璁惧鎵�灞炴埧闂�
+                var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev);
+
+                if (tempDevRoom != null)
                 {
-                    var removeDevice2 = new RemoveBindListObj();
-                    removeDevice2.BindCluster = 6;
-                    removeDevice2.BindType = 0;
-                    removeDevice2.BindMacAddr = bindDevice.BindMacAddr;
-                    removeDevice2.BindEpoint = bindDevice.BindEpoint;
-                    delDevice.RemoveBindList.Add(removeDevice2);
-                }
-            }
-            else if (bindDevice.BindType == 2)
-            {
-                var removeDevice = new RemoveBindListObj();
-                removeDevice.BindCluster = bindDevice.BindCluster;
-                removeDevice.BindType = 1;
-                removeDevice.BindScenesId = bindDevice.BindScenesId;
-                delDevice.RemoveBindList.Add(removeDevice);
-            }
-
-            System.Threading.Tasks.Task.Run(() =>
-            {
-                try
-                {
-                    Application.RunOnMainThread(() =>
+                  var tempDevFloorId = tempDevRoom.FloorId;
+                  //鑾峰彇鎴块棿鐨勫悕瀛�
+                  var tempDevRoomName = tempDevRoom.Name;
+                  //鑾峰彇妤煎眰鐨勫悕瀛�
+                  var tempDevFloorName = HdlResidenceLogic.Current.GetFloorNameById(tempDevFloorId);
+                  if (string.IsNullOrEmpty(tempDevFloorName))
+                  {
+                    if (string.IsNullOrEmpty(tempDevRoomName))
                     {
-                        CommonPage.Loading.Start("");
-                    });
-                    var delResult = new DelDeviceBindResponseAllData();
-                    delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
-                    if (delResult != null && delResult.delDeviceBindResponseData != null)
-                    {
-                        if (delResult.delDeviceBindResponseData?.RemoveBindList != null)
-                        {
-                            foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList)
-                            {
-                                switch (re.Result)
-                                {
-                                    case 0:
-                                        currentKey.bindList.Remove(bindDevice);
-                                        Application.RunOnMainThread(() =>
-                                        {
-                                            RefreshList();
-                                            //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
-                                            if (re.BindType == 2)
-                                            {
-                                                currentKey.panelMode = 65535;
-                                            }
-                                            currentKey.ReSave();
-                                        });
-                                        result = 0;
-                                        break;
-                                    case 1:
-                                        currentKey.bindList.Clear();
-                                        try
-                                        {
-                                            Application.RunOnMainThread(() =>
-                                            {
-                                                CommonPage.Loading.Start("");
-                                            });
-                                            var getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey);
-                                            var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                                            var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                                            if (getBindList != null)
-                                            {
-                                                if (getBindList.getAllBindResponseData != null)
-                                                {
-                                                    foreach (var b in getBindList.getAllBindResponseData.BindList)
-                                                    {
-                                                        if (b.BindCluster == currentClusterID)
-                                                        {
-                                                            if (b.BindCluster == 6)
-                                                            {
-
-                                                                if (b.BindType == 2)
-                                                                {
-                                                                    bindSceneListTemp.Add(b);
-                                                                }
-                                                                else
-                                                                {
-                                                                    bindDeviceListTemp.Add(b);
-                                                                }
-                                                            }
-                                                            else
-                                                            {
-                                                                currentKey.bindList.Add(b);
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                            }
-                                            if (currentKey.panelMode == 1)
-                                            {
-                                                currentKey.bindList = bindSceneListTemp;
-                                            }
-                                            else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
-                                            {
-                                                currentKey.bindList = bindDeviceListTemp;
-                                            }
-                                        }
-                                        catch { }
-                                        finally
-                                        {
-                                            Application.RunOnMainThread(() =>
-                                            {
-                                                RefreshList();
-                                                CommonPage.Loading.Hide();
-                                            });
-                                        }
-                                        break;
-                                    case 2:
-                                        if (delResult.removeBindResultResponseData != null)
-                                        {
-                                            if (delResult.removeBindResultResponseData.Result == 0)
-                                            {
-                                                currentKey.bindList.Remove(bindDevice);
-                                                Application.RunOnMainThread(() =>
-                                                {
-                                                    RefreshList();
-                                                });
-                                                result = 0;
-                                            }
-                                            else
-                                            {
-                                                Application.RunOnMainThread(() =>
-                                                {
-                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
-                                                });
-                                            }
-                                        }
-                                        break;
-                                    default:
-                                        break;
-                                }
-                            }
-                        }
-                        else
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
-                            });
-                        }
+                      btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
                     }
                     else
                     {
-                        Application.RunOnMainThread(() =>
-                        {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5003" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
-                        });
+                      btnFloorRoomNameText = tempDevRoomName;
                     }
-                }
-                catch { }
-                finally
-                {
-                    Application.RunOnMainThread(() =>
+                  }
+                  else
+                  {
+                    if (string.IsNullOrEmpty(tempDevRoomName))
                     {
-                        CommonPage.Loading.Hide();
-                    });
+                      btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+                    }
+                    else
+                    {
+                      btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName;
+                    }
+                  }
                 }
-            });
-            return result;
+                else
+                {
+                  btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+                }
+
+                devicePic.UnSelectedImagePath = tempDev.IconPath;
+                devicePic.Text = "";
+
+                if (string.IsNullOrEmpty(tempDev.DeviceEpointName))
+                {
+                  btnBindNameText = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit);
+                }
+                else
+                {
+                  btnBindNameText = tempDev.DeviceEpointName;
+                }
+              }
+              else
+              {
+                btnBindNameText = bindDevice.BindMacAddr + "_" + bindDevice.BindEpoint;
+                devicePic.TextAlignment = TextAlignment.CenterLeft;
+                devicePic.TextColor = UserCenterColor.Current.Gray;
+                devicePic.Text = Language.StringByID(R.MyInternationalizationString.uOffLine);
+              }
+            }
+          }
+
+          var btnBindName = rowLayout.frameTable.AddTopView(btnBindNameText, 800);
+          var btnFloorRoomName = rowLayout.frameTable.AddBottomView(btnFloorRoomNameText, 800);
+          rowLayout.frameTable.AddBottomLine();
+          var btnDel = rowLayout.AddDeleteControl();
+          btnDel.ButtonClickEvent += (sender, e) =>
+          {
+            RemoveTargets(bindDevice, btnDel);
+          };
+          #endregion
+        }
+        midVerticalRefreshLayout.AdjustTableHeight(Application.GetRealHeight(23));
+      }
+      #endregion
+    }
+
+    /// <summary>
+    /// 褰撳墠鎸夐敭妯″紡鏄剧ず
+    /// </summary>
+    public void BindModeDisplay()
+    {
+      var modeRowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2);
+      modeRowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
+      midVerticalRefreshLayout.AddChidren2(modeRowLayout);
+      modeRowLayout.frameTable.UseClickStatu = false;
+      modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 400);
+      var btnKeyModeTipText = "";
+      #region 褰撳墠妯″紡鏂囨湰鏄剧ず
+      switch (currentKey.panelMode)
+      {
+        case 100:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOn);
+          break;
+        case 101:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffoFF);
+          break;
+        case 102:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOnOff);
+          break;
+        case 200:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode1);
+          break;
+        case 201:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode2);
+          break;
+        case 203:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode3);
+          break;
+        case 204:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode4);
+          break;
+        case 205:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode5);
+          break;
+        case 300:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUp);
+          break;
+        case 301:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDown);
+          break;
+        case 302:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdStop);
+          break;
+        case 303:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUpStop);
+          break;
+        case 304:
+          btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDownStop);
+          break;
+      }
+      #endregion
+      modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 800);
+      modeRowLayout.frameTable.AddBottomLine();
+      var btnDel = modeRowLayout.AddDeleteControl();
+      //涓�閿竻闄ゆ寜閿簨浠�
+      btnDel.ButtonClickEvent += async (sender, e) =>
+      {
+        string msg = Language.StringByID(R.MyInternationalizationString.ClearAllTargets).Replace("{0}", "\r\n");
+        var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
+        alert.Show();
+              //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+              alert.ConfirmClickEvent += () =>
+               {
+             bool isDelSuccess = false;
+             System.Threading.Tasks.Task.Run(() =>
+                   {
+                 try
+                 {
+                   Application.RunOnMainThread(() =>
+                         {
+                         CommonPage.Loading.Start("");
+                       });
+                   var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
+                   if (bindResult != null && bindResult.clearBindInfoResponseData != null)
+                   {
+                     if (bindResult.clearBindInfoResponseData.Result != 0)
+                     {
+                       Application.RunOnMainThread(() =>
+                             {
+                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
+                                 CommonPage.Loading.Hide();
+                               });
+                       return;
+                     }
+                     else
+                     {
+                       var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
+                       if (temp != null && temp.setWritableValueResponData?.Status != 0)
+                       {
+                         var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
+                         if (temp1 != null && temp1.setWritableValueResponData?.Status != 0)
+                         {
+                           Application.RunOnMainThread(() =>
+                                 {
+                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+
+                                       });
+                         }
+                         else
+                         {
+                           isDelSuccess = true;
+                         }
+                       }
+                       else
+                       {
+                         isDelSuccess = true;
+                       }
+                     }
+                   }
+                   else
+                   {
+                     Application.RunOnMainThread(() =>
+                           {
+                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                           });
+                   }
+                 }
+                 catch { }
+                 finally
+                 {
+                   Application.RunOnMainThread(() =>
+                         {
+                         if (isDelSuccess)
+                         {
+                           currentKey.panelMode = 65535;
+                           currentKey.bindList.Clear();
+                           RefreshList();
+                                 //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
+                                 currentKey.ReSave();
+                         }
+                         CommonPage.Loading.Hide();
+                       });
+                 }
+               });
+           };
+      };
+    }
+
+    /// <summary>
+    /// 渚ц竟瀵艰埅鏍�
+    /// </summary>
+    async void SideslipFramelayout()
+    {
+      #region UI
+      var dialog = new Dialog { };
+      dialog.Show();
+
+      var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
+      dialog.AddChidren(flMain);
+      flMain.MouseUpEventHandler += (sender11, e11) =>
+      {
+        dialog.Close();
+      };
+
+      var sidelipFrameLayout = new FrameLayout()
+      {
+        Height = Application.GetMinReal(628),
+        Width = Application.GetMinReal(415),
+        Y = Application.GetRealHeight(115 + 45),
+        X = Application.GetRealWidth(605),
+        BackgroundImagePath = "DoorLock/SideslipPic.png",
+      };
+      flMain.AddChidren(sidelipFrameLayout);
+
+      var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
+      {
+        Height = Application.GetRealHeight(600),
+        Y = Application.GetRealHeight(28),
+      };
+      sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
+      #endregion
+
+      Button oldbuttonText = null;
+      string oldKeySelectModeText = currentKey.currentKeySelectModeText;
+
+      if (typeModeList == null)
+      {
+        //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
+        Application.RunOnMainThread(() =>
+        {
+          CommonPage.Loading.Start();
+        });
+        typeModeList = await GetTypeMode();
+        if (typeModeList == null)
+        {
+          Application.RunOnMainThread(() =>
+          {
+            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+            CommonPage.Loading.Hide();
+          });
+          dialog.Close();
+          return;
+        }
+        else
+        {
+          Application.RunOnMainThread(() =>
+          {
+            CommonPage.Loading.Hide();
+          });
+        }
+      }
+
+      int count = 0;
+      foreach (var value in typeModeList)
+      {
+        count++;
+        #region  rowView
+        var rowView = new FrameLayout()
+        {
+          Height = Application.GetRealHeight(150),
+        };
+        sidelipVerticalScrolViewLayout.AddChidren(rowView);
+
+        var btnMethodText = new Button()
+        {
+          Width = Application.GetRealWidth(268),
+          Height = Application.GetRealHeight(58),
+          X = Application.GetRealWidth(115),
+          Y = Application.GetRealHeight(69),
+          TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+          TextSize = 14,
+          IsBold = false,
+          TextAlignment = TextAlignment.CenterLeft,
+        };
+        rowView.AddChidren(btnMethodText);
+
+        var line2 = new Button()
+        {
+          Y = rowView.Height - 1,
+          X = Application.GetRealWidth(115),
+          Width = Application.GetRealWidth(300),
+          Height = 1,
+          BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+        };
+        rowView.AddChidren(line2);
+
+        if (string.IsNullOrEmpty(currentKey.currentKeySelectModeText) && value == 1)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        #endregion
+
+        #region 鏁版嵁澶勭悊
+        switch (value)
+        {
+          case 1:
+            btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddScene);
+            break;
+          case 100:
+            btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddSwitch);
+            break;
+          case 200:
+            btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddDimmer);
+            break;
+          case 300:
+            btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddCurtain);
+            line2.Visible = false;
+            break;
         }
 
-        /// <summary>
-        /// 閲嶅啓绉婚櫎鏂规硶
-        /// </summary>
-        public override void RemoveFromParent()
+        if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1)
         {
-            localDeviceList.Clear();
-            scList.Clear();
-            base.RemoveFromParent();
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
         }
+        if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300)
+        {
+          btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          btnMethodText.IsBold = true;
+          oldbuttonText = btnMethodText;
+        }
+        #endregion
+
+        //绫诲瀷浜嬩欢閫変腑澶勭悊
+        EventHandler<MouseEventArgs> eHandler = (sender, e) =>
+        {
+          if (!btnMethodText.IsSelected)
+          {
+            if (oldbuttonText != null)
+            {
+              oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+            }
+            oldbuttonText = btnMethodText;
+            currentKey.currentKeySelectModeText = btnMethodText.Text;
+            oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+          }
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene))
+          {
+            var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey);
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addScenePage.Show();
+
+            Action<List<BindListResponseObj>> action = (obj) =>
+                    {
+                  currentKey.bindList = obj;
+                  RefreshList();
+                };
+            addScenePage.action += action;
+            dialog.Close();
+          }
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch))
+          {
+            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch");
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addDevicePage.Show();
+
+            Action<List<BindListResponseObj>> action = (obj) =>
+                    {
+                  currentKey.bindList = obj;
+                  RefreshList();
+                };
+            addDevicePage.actionAddDevicePage += action;
+            dialog.Close();
+          }
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer))
+          {
+            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer");
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addDevicePage.Show();
+
+            Action<List<BindListResponseObj>> action = (obj) =>
+                    {
+                  currentKey.bindList = obj;
+                  RefreshList();
+                };
+            addDevicePage.actionAddDevicePage += action;
+            dialog.Close();
+          }
+          if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain))
+          {
+            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain");
+            Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+            addDevicePage.Show();
+
+            Action<List<BindListResponseObj>> action = (obj) =>
+                    {
+                  currentKey.bindList = obj;
+                  RefreshList();
+                };
+            addDevicePage.actionAddDevicePage += action;
+            dialog.Close();
+          }
+        };
+        btnMethodText.MouseUpEventHandler += eHandler;
+        rowView.MouseUpEventHandler += eHandler;
+      }
     }
+
+    /// <summary>
+    /// 鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫�
+    /// </summary>
+    /// <returns></returns>
+    private async System.Threading.Tasks.Task<List<int>> GetTypeMode()
+    {
+      //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
+      if (Common.Config.Instance.Home.IsVirtually == true)
+      {
+        //鍒欓粯璁ゅ叏閮ㄥ姛鑳介兘缁欏畠
+        typeModeList = new List<int>() { 1, 100, 200, 300, 0, 101, 102 };
+        return typeModeList;
+      }
+      if (typeModeList != null)
+      {
+        typeModeList.Clear();
+      }
+      if (currentKey.privateFuncSecondLevelList.Count == 0 || currentKey.privateFuncSecondLevelList.Contains(1) == false || currentKey.privateFuncSecondLevelList.Contains(100) == false || currentKey.privateFuncSecondLevelList.Contains(200) == false || currentKey.privateFuncSecondLevelList.Contains(300) == false)
+      {
+        //鑾峰彇绗簩绾у姛鑳�
+        typeModeList = await currentKey.GetPanelDeviceFunctionLevel2(256);
+        if (typeModeList == null)
+        {
+          return null;
+        }
+        currentKey.privateFuncSecondLevelList = typeModeList;
+      }
+      else
+      {
+        typeModeList = currentKey.privateFuncSecondLevelList;
+      }
+      return typeModeList;
+    }
+
+    /// <summary>
+    /// 鍒犻櫎褰撳墠鐩爣鏂规硶
+    /// </summary>
+    /// <param name="bindDevice"></param>
+    /// <param name="btnDel"></param>
+    /// <returns></returns>
+    private int RemoveTargets(BindListResponseObj bindDevice, Button btnDel)
+    {
+      int result = -1;
+      var delDevice = new DelDeviceBindData();
+      delDevice.DeviceAddr = currentKey.DeviceAddr;
+      delDevice.Epoint = currentKey.DeviceEpoint;
+
+      if (bindDevice.BindType == 0 || bindDevice.BindType == 1)
+      {
+        var removeDevice = new RemoveBindListObj();
+        removeDevice.BindCluster = bindDevice.BindCluster;
+        removeDevice.BindType = 0;
+        removeDevice.BindMacAddr = bindDevice.BindMacAddr;
+        removeDevice.BindEpoint = bindDevice.BindEpoint;
+        delDevice.RemoveBindList.Add(removeDevice);
+        //鏄寒搴﹀啀娆″彂鍒犻櫎6鐨勫懡浠�
+        if (currentClusterID == 8)
+        {
+          var removeDevice2 = new RemoveBindListObj();
+          removeDevice2.BindCluster = 6;
+          removeDevice2.BindType = 0;
+          removeDevice2.BindMacAddr = bindDevice.BindMacAddr;
+          removeDevice2.BindEpoint = bindDevice.BindEpoint;
+          delDevice.RemoveBindList.Add(removeDevice2);
+        }
+      }
+      else if (bindDevice.BindType == 2)
+      {
+        var removeDevice = new RemoveBindListObj();
+        removeDevice.BindCluster = bindDevice.BindCluster;
+        removeDevice.BindType = 1;
+        removeDevice.BindScenesId = bindDevice.BindScenesId;
+        delDevice.RemoveBindList.Add(removeDevice);
+      }
+
+      System.Threading.Tasks.Task.Run(() =>
+      {
+        try
+        {
+          Application.RunOnMainThread(() =>
+                {
+                CommonPage.Loading.Start("");
+              });
+          var delResult = new DelDeviceBindResponseAllData();
+          delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
+          if (delResult != null && delResult.delDeviceBindResponseData != null)
+          {
+            if (delResult.delDeviceBindResponseData?.RemoveBindList != null)
+            {
+              foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList)
+              {
+                switch (re.Result)
+                {
+                  case 0:
+                    currentKey.bindList.Remove(bindDevice);
+                    Application.RunOnMainThread(() =>
+                          {
+                                    RefreshList();
+                                          //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
+                                          if (re.BindType == 2)
+                                    {
+                                      currentKey.panelMode = 65535;
+                                    }
+                                    currentKey.ReSave();
+                                  });
+                    result = 0;
+                    break;
+                  case 1:
+                    currentKey.bindList.Clear();
+                    try
+                    {
+                      Application.RunOnMainThread(() =>
+                            {
+                                        CommonPage.Loading.Start("");
+                                      });
+                      var getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey);
+                      var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                      var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                      if (getBindList != null)
+                      {
+                        if (getBindList.getAllBindResponseData != null)
+                        {
+                          foreach (var b in getBindList.getAllBindResponseData.BindList)
+                          {
+                            if (b.BindCluster == currentClusterID)
+                            {
+                              if (b.BindCluster == 6)
+                              {
+
+                                if (b.BindType == 2)
+                                {
+                                  bindSceneListTemp.Add(b);
+                                }
+                                else
+                                {
+                                  bindDeviceListTemp.Add(b);
+                                }
+                              }
+                              else
+                              {
+                                currentKey.bindList.Add(b);
+                              }
+                            }
+                          }
+                        }
+                      }
+                      if (currentKey.panelMode == 1)
+                      {
+                        currentKey.bindList = bindSceneListTemp;
+                      }
+                      else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
+                      {
+                        currentKey.bindList = bindDeviceListTemp;
+                      }
+                    }
+                    catch { }
+                    finally
+                    {
+                      Application.RunOnMainThread(() =>
+                            {
+                                        RefreshList();
+                                        CommonPage.Loading.Hide();
+                                      });
+                    }
+                    break;
+                  case 2:
+                    if (delResult.removeBindResultResponseData != null)
+                    {
+                      if (delResult.removeBindResultResponseData.Result == 0)
+                      {
+                        currentKey.bindList.Remove(bindDevice);
+                        Application.RunOnMainThread(() =>
+                              {
+                                            RefreshList();
+                                          });
+                        result = 0;
+                      }
+                      else
+                      {
+                        Application.RunOnMainThread(() =>
+                              {
+                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                                          });
+                      }
+                    }
+                    break;
+                  default:
+                    break;
+                }
+              }
+            }
+            else
+            {
+              Application.RunOnMainThread(() =>
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                      });
+            }
+          }
+          else
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5003" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
+                  });
+          }
+        }
+        catch { }
+        finally
+        {
+          Application.RunOnMainThread(() =>
+                {
+                CommonPage.Loading.Hide();
+              });
+        }
+      });
+      return result;
+    }
+
+    /// <summary>
+    /// 閲嶅啓绉婚櫎鏂规硶
+    /// </summary>
+    public override void RemoveFromParent()
+    {
+      localDeviceList.Clear();
+      scList.Clear();
+      base.RemoveFromParent();
+    }
+  }
 }
 

--
Gitblit v1.8.0