From 4cc40d883a00869f9aeec20e120d09c14ab427fb Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期五, 08 四月 2022 13:05:18 +0800
Subject: [PATCH] 2022年04月08日13:03:36

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs |   82 ++++++++++++++++++++++-------------------
 1 files changed, 44 insertions(+), 38 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
index 4cf6765..7402009 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -122,7 +122,7 @@
                         ///鑾峰彇鏄剧ず璁惧鍒楄〃
                         var list = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(areaView.btnClick.Tag as Entity.Room, if_type);
 
-                        DeviceListView(vv, list);
+                        this.LoadingDeviceListView(vv, list);
                     };
                     if (roomList.Count - 1 == i)
                     {
@@ -220,11 +220,11 @@
                         fLayout.RemoveFromParent();
                         funAllAreaView.btnText2.Text = areaView.btnClick.Tag.ToString();
                         UserInfo.Current.logicselectedFunction = areaView.btnClick.Tag.ToString();
-                        ///鑾峰彇鍗曚釜绫诲瀷锛堜緥濡傦細鐏厜绫汇�傘�傦級璁惧FunctionType鍒楄〃<绠�绉�:spk鍒楄〃>
+                        ///鑾峰彇璁惧鍗曚釜澶х被spk鍒楄〃锛堜緥濡�:鐏厜绫�,绌鸿皟绫�...锛�
                         var typeFunctionList2 = LogicMethod.CurrLogicMethod.GetDeviceTypeFunctionList(UserInfo.Current.logicselectedFunction);
-                        ///鑾峰彇鍗曚釜鐏厜绫诲瀷锛堜緥濡傦細鐏厜1,鐏厜2銆傘�傦級璁惧鍒楄〃
+                        ///鑾峰彇璁惧鍗曚釜灏忕被鍒楄〃锛堜緥濡傦細鐏厜1,鐏厜2...锛�
                         var lists2 = LogicMethod.CurrLogicMethod.GetShowDeviceList(typeFunctionList2, functionList);
-                        DeviceListView(vv, lists2);
+                       this.LoadingDeviceListView(vv, lists2);
 
                     };
                     if (deviceTypeList.Count - 1 == i)
@@ -238,15 +238,15 @@
             funAllAreaView.btnIcon2.MouseUpEventHandler += funClick;
             ///鑾峰彇鎴块棿鏀寔鐨勮澶囧垪琛�
             var deviceList = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_type);
-            ///鑾峰彇鍗曚釜绫诲瀷锛堜緥濡�:鐏厜绫汇�傘�傦級璁惧FunctionType鍒楄〃<绠�绉�:spk鍒楄〃>
+            ///鑾峰彇璁惧鍗曚釜澶х被spk鍒楄〃锛堜緥濡�:鐏厜绫�,绌鸿皟绫�...锛�
             var typeFunctionList = LogicMethod.CurrLogicMethod.GetDeviceTypeFunctionList(UserInfo.Current.logicselectedFunction);
-            ///鑾峰彇鍗曚釜鐏厜绫诲瀷锛堜緥濡傦細鐏厜1,鐏厜2銆傘�傦級璁惧鍒楄〃
+            ///鑾峰彇璁惧鍗曚釜灏忕被鍒楄〃锛堜緥濡傦細鐏厜1,鐏厜2...锛�
             var lists = LogicMethod.CurrLogicMethod.GetShowDeviceList(typeFunctionList, deviceList);
             ///鎴块棿鍚嶇О
             funAllAreaView.btnText1.Text = UserInfo.Current.logicselectedRoom.roomName;
-            ///鍔熻兘绫诲瀷鍚嶇О<鐏厜绫汇�傘�傘�傘�傘��>
+            ///璁惧澶х被鍚嶇О<鐏厜绫汇�傘�傘�傘�傘��>
             funAllAreaView.btnText2.Text = UserInfo.Current.logicselectedFunction;
-            DeviceListView(vv, lists);
+            this.LoadingDeviceListView(vv, lists);
         }
 
 
@@ -255,40 +255,46 @@
         /// </summary>
         /// <param name="verticalScrolView">涓婁笅婊戝姩</param>
         /// <param name="deviceList"></param>
-        public void DeviceListView(VerticalScrolViewLayout verticalScrolView, List<HDL_ON.Entity.Function> deviceList)
+        private void LoadingDeviceListView(VerticalScrolViewLayout verticalScrolView, List<HDL_ON.Entity.Function> deviceList)
         {
-
-            verticalScrolView.RemoveAll();
-            foreach (var dev in deviceList)
+            System.Threading.Tasks.Task.Run(() =>
             {
-                LogicView.SelectTypeView funView = new LogicView.SelectTypeView();
-                funView.btnText.Visible = false;
-                funView.btnDeviceName.Visible = true;
-                funView.btnRoomName.Visible = true;
-                funView.btnLine.X = Application.GetRealWidth(16);
-                funView.btnLine.Width = Application.GetRealWidth(343);
-                verticalScrolView.AddChidren(funView.FLayoutView());
-                funView.btnIcon.UnSelectedImagePath = LogicMethod.CurrLogicMethod.GetIconPath(dev.spk);
-                funView.btnDeviceName.Text = dev.name;
-                funView.btnRoomName.Text = dev.GetRoomListName();
-                funView.btnClick.MouseUpEventHandler += (sen, e) => {
-                    if (if_type == LogicMethod.condition_if)
+                Application.RunOnMainThread(() =>
+                {
+                    verticalScrolView.RemoveAll();
+                    foreach (var dev in deviceList)
                     {
-                        ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
-                        MainPage.BasePageView.AddChidren(conditionDeviceFunList);
-                        conditionDeviceFunList.Show(dev, 0, false);
-                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                    }
-                    else
-                    {
-                        TargetDeviceFunList targetDeviceFunList = new TargetDeviceFunList();
-                        MainPage.BasePageView.AddChidren(targetDeviceFunList);
-                        targetDeviceFunList.Show(dev, 0, false);
-                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                    }
+                        LogicView.SelectTypeView funView = new LogicView.SelectTypeView();
+                        funView.btnText.Visible = false;
+                        funView.btnDeviceName.Visible = true;
+                        funView.btnRoomName.Visible = true;
+                        funView.btnLine.X = Application.GetRealWidth(16);
+                        funView.btnLine.Width = Application.GetRealWidth(343);
+                        verticalScrolView.AddChidren(funView.FLayoutView());
+                        funView.btnIcon.UnSelectedImagePath = LogicMethod.CurrLogicMethod.GetIconPath(dev.spk);
+                        funView.btnDeviceName.Text = dev.name;
+                        funView.btnRoomName.Text = dev.GetRoomListName();
+                        funView.btnClick.MouseUpEventHandler += (sen, e) =>
+                        {
+                            if (if_type == LogicMethod.condition_if)
+                            {
+                                ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
+                                MainPage.BasePageView.AddChidren(conditionDeviceFunList);
+                                conditionDeviceFunList.Show(dev, 0, false);
+                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                            }
+                            else
+                            {
+                                TargetDeviceFunList targetDeviceFunList = new TargetDeviceFunList();
+                                MainPage.BasePageView.AddChidren(targetDeviceFunList);
+                                targetDeviceFunList.Show(dev, 0, false);
+                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                            }
 
-                };
-            }
+                        };
+                    }
+                });
+            });
         }
     }
 

--
Gitblit v1.8.0