黄学彪
2020-06-01 0bf9e65bc3ba98391e7835c922b15baab3c77876
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -317,17 +317,35 @@
            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
            if (isShow == true)
            {
                //展开模式时,扩大依据为:它有几个子控件
                heightValue = (listDevice.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                //标题自己就是一个子控件
                if (rowInfo.frameTable.ChildrenCount == 1)
                //获取这一堆设备时属于什么类型的
                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
                if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
                {
                    //获取这一堆设备时属于什么类型的
                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
                    foreach (CommonDevice info in listDevice)
                    var listTemp = Common.LocalDevice.Current.GetMutilfunctionPanelByMac(listDevice);
                    //展开模式时,扩大依据为:它有几个子控件
                    heightValue = (listTemp.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    //标题自己就是一个子控件
                    if (rowInfo.frameTable.ChildrenCount == 1)
                    {
                        //加载它的列表
                        this.AddDeviceDetailRow(rowInfo.frameTable, info, deviceEnumInfo);
                        foreach (CommonDevice info in listTemp)
                        {
                            //加载它的列表
                            this.AddDeviceDetailRow(rowInfo.frameTable, info, deviceEnumInfo);
                        }
                    }
                }
                else
                {
                    //展开模式时,扩大依据为:它有几个子控件
                    heightValue = (listDevice.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    //标题自己就是一个子控件
                    if (rowInfo.frameTable.ChildrenCount == 1)
                    {
                        foreach (CommonDevice info in listDevice)
                        {
                            //加载它的列表
                            this.AddDeviceDetailRow(rowInfo.frameTable, info, deviceEnumInfo);
                        }
                    }
                }
            }
@@ -481,7 +499,7 @@
                {
                    //方悦面板的功能配置
                    var form = new DevicePanel.PanelFangyueFunctionSettionForm();
                    form.AddForm(device);
                    form.AddForm(device, deviceEnumInfo);
                }
                else
                {
@@ -701,7 +719,8 @@
        /// </summary>
        /// <param name="gateWay">网关对象</param>
        /// <param name="online">在线状态变更后的状态</param>
        public override void GatewayOnlinePush(ZbGateway gateWay, bool online)
        /// <param name="hadGwOnline">2020.05.25追加:此住宅是否拥有网关在线</param>
        public override void GatewayOnlinePush(ZbGateway gateWay, bool online, bool hadGwOnline)
        {
            if (this.gatewayViewRow == null)
            {
@@ -789,13 +808,12 @@
            if (localDevice != null)
            {
                //在线状态一样的话,不需要刷新
                if (localDevice.IsOnline == device.IsOnline)
                if (localDevice.IsOnline != device.IsOnline)
                {
                    return;
                    //保存状态
                    localDevice.IsOnline = device.IsOnline;
                    localDevice.ReSave();
                }
                //保存状态
                localDevice.IsOnline = device.IsOnline;
                localDevice.ReSave();
            }
            rowInfo.MenuRow.IsOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device);
@@ -912,7 +930,7 @@
        #region ■ 实现外部调用_______________________
        /// <summary>
        /// 添加新的设备到界面桌布中
        /// 添加新的设备到界面桌布中(外部调用)
        /// </summary>
        /// <param name="deviceAddr">设备Mac地址</param>
        public void AddDeviceToFormTable(string deviceAddr)
@@ -940,6 +958,30 @@
                //创建新的行
                this.AddDeviceMenuRow(deviceAddr);
                //记录当前的正在操作的设备的Mac地址
                this.nowActionDeviceMac = deviceAddr;
            }
        }
        /// <summary>
        /// 刷新指定设备行的信息(外部调用)
        /// </summary>
        /// <param name="deviceAddr">设备Mac地址</param>
        public void RefreshDeviceRow(string deviceAddr)
        {
            if (this.dicRowInfo.ContainsKey(deviceAddr) == true)
            {
                var row = this.dicRowInfo[deviceAddr];
                row.MenuRow?.RefreshControlInfo(true);
                //明细
                if (row.dicDetailRow != null)
                {
                    foreach (var detailRow in row.dicDetailRow.Values)
                    {
                        detailRow.RefreshControlInfo();
                    }
                }
            }
        }