冰箱设置根据配置文件显示
This commit is contained in:
		
							parent
							
								
									6fd35e569f
								
							
						
					
					
						commit
						17a6ddd0da
					
				| 
						 | 
				
			
			@ -59,7 +59,7 @@
 | 
			
		|||
		<add key="ScanCodePortPath" value="COM8" />
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		<!--是否有冰箱抽屉0无1有-->
 | 
			
		||||
		<!--是否有冰箱抽屉0无,1有一个,2两个-->
 | 
			
		||||
		<add key="hasFridge" value="1"/>
 | 
			
		||||
		<!-- 冰箱的串口号 -->
 | 
			
		||||
		<add key="FridgePortPath" value="COM7" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,8 +233,10 @@ namespace DM_Weight
 | 
			
		|||
            containerRegistry.RegisterForNavigation<DebugWindow, DebugWindowViewModel>();
 | 
			
		||||
            //主设置页面
 | 
			
		||||
            containerRegistry.RegisterForNavigation<SettingMainWindow, SettingMainWindowViewModel>();
 | 
			
		||||
            //冰箱抽屉设置页面
 | 
			
		||||
            //两个冰箱抽屉设置页面
 | 
			
		||||
            containerRegistry.RegisterForNavigation<FridgeWindow, FridgeWindowViewModel>();
 | 
			
		||||
            //只有一个冰箱抽屉设置页面
 | 
			
		||||
            containerRegistry.RegisterForNavigation<FridgeOnlyWindow, FridgeOnlyWindowViewModel>();
 | 
			
		||||
 | 
			
		||||
            #endregion
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,7 @@ using PreviewDemo;
 | 
			
		|||
using System.Runtime.InteropServices;
 | 
			
		||||
using DM_Weight.Common;
 | 
			
		||||
using System.Net;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
namespace DM_Weight.Port
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -963,6 +964,37 @@ namespace DM_Weight.Port
 | 
			
		|||
        }
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region  药盒操作
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 打开药盒
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="ColNo"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        public async Task OpenBox(int ColNo)
 | 
			
		||||
        {
 | 
			
		||||
            var vlock = 321;
 | 
			
		||||
            decimal decolNO = (decimal)ColNo;
 | 
			
		||||
            var channel = Convert.ToInt32((DrawerNo * 10 + Math.Ceiling(decolNO % 3)).ToString(), 16);
 | 
			
		||||
            byte[] buffer = new byte[] { 0xaa, (byte)channel, 5,(byte)vlock, 0x00,0x00,0x00,0xee};
 | 
			
		||||
            canBusSerial.Write(buffer, 0, 8);
 | 
			
		||||
            await Task.Delay(TimeSpan.FromMilliseconds(20));
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 查询药盒状态
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="text"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        public async Task<byte[]> GetBoxLockState(int ColNo)
 | 
			
		||||
        {
 | 
			
		||||
            decimal deColNo = (decimal)ColNo;
 | 
			
		||||
            var channel = Convert.ToInt32((DrawerNo * 10 + Math.Ceiling(deColNo / 3)).ToString(), 16);
 | 
			
		||||
            byte[] buffer = new byte[] {0xaa,(byte)channel,2,0,0,0,0,0xee };
 | 
			
		||||
            canBusSerial.Write(buffer, 0, 8);
 | 
			
		||||
            return await GetBufferByPort(canBusSerial, 8);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        private string trim(string text)
 | 
			
		||||
        {
 | 
			
		||||
            //此处使用了转义字符如:\',\",\\,分别表示单引号,双引号,反斜杠
 | 
			
		||||
| 
						 | 
				
			
			@ -1095,6 +1127,18 @@ namespace DM_Weight.Port
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region 标签显示屏
 | 
			
		||||
        //清屏
 | 
			
		||||
        public void ClearContentMethod(int drawerNo,int colNo)
 | 
			
		||||
        {
 | 
			
		||||
            decimal deColNo = colNo;
 | 
			
		||||
            var channel = drawerNo * 10 + Math.Ceiling(deColNo / 3);
 | 
			
		||||
            var colNo2 = 321;
 | 
			
		||||
            byte[] buffer = new byte[] { 0xaa };
 | 
			
		||||
            canBusSerial.Write(buffer, 0, 8);
 | 
			
		||||
        }
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region 回收箱操作
 | 
			
		||||
| 
						 | 
				
			
			@ -1314,6 +1358,7 @@ namespace DM_Weight.Port
 | 
			
		|||
            }
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
        #endregion
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 冰箱使能
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -1694,7 +1739,6 @@ namespace DM_Weight.Port
 | 
			
		|||
            //FridgeOperate = false;
 | 
			
		||||
        }
 | 
			
		||||
        #endregion 
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,224 @@
 | 
			
		|||
using DM_Weight.Common;
 | 
			
		||||
using DM_Weight.msg;
 | 
			
		||||
using DM_Weight.Port;
 | 
			
		||||
using DM_Weight.util;
 | 
			
		||||
using Prism.Commands;
 | 
			
		||||
using Prism.Events;
 | 
			
		||||
using Prism.Mvvm;
 | 
			
		||||
using Prism.Regions;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Configuration;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Xml;
 | 
			
		||||
 | 
			
		||||
namespace DM_Weight.ViewModels
 | 
			
		||||
{
 | 
			
		||||
    public class FridgeOnlyWindowViewModel : BindableBase, IRegionMemberLifetime, INavigationAware
 | 
			
		||||
    {
 | 
			
		||||
        //温度区间
 | 
			
		||||
        private string _temperatureRange = CommonClass.ReadAppSetting("temperatureRange").ToString();
 | 
			
		||||
        public string TemperatureRange
 | 
			
		||||
        {
 | 
			
		||||
            get => _temperatureRange;
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                SetProperty(ref _temperatureRange, value);
 | 
			
		||||
                //更新配置文件中冰箱温度区间
 | 
			
		||||
                CommonClass.SaveAppSetting("temperatureRange", _temperatureRange);
 | 
			
		||||
            }
 | 
			
		||||
        } 
 | 
			
		||||
        private float defaultValue = Convert.ToSingle(CommonClass.ReadAppSetting("temperatureValue"));
 | 
			
		||||
        //温度值
 | 
			
		||||
        private float _temperatureValue = Convert.ToSingle(CommonClass.ReadAppSetting("temperatureValue"));
 | 
			
		||||
        public float TemperatureValue
 | 
			
		||||
        {
 | 
			
		||||
            get => _temperatureValue;
 | 
			
		||||
            set => SetProperty(ref _temperatureValue, value);
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 根据冰箱温度控制保存按钮是否可点击
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        private bool _isInvalid;
 | 
			
		||||
        public bool IsInvalid
 | 
			
		||||
        {
 | 
			
		||||
            get => _isInvalid;
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                SetProperty(ref _isInvalid, value);
 | 
			
		||||
                BtnIsEnable = !IsInvalid;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 根据冰箱温度控制保存按钮是否可用
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        private bool _btnIsEnable = true;
 | 
			
		||||
        public bool BtnIsEnable
 | 
			
		||||
        {
 | 
			
		||||
            get => _btnIsEnable;
 | 
			
		||||
            set => SetProperty(ref _btnIsEnable, value);
 | 
			
		||||
        }
 | 
			
		||||
        //冰箱状态:true关;false开
 | 
			
		||||
        private bool _fridgeState;
 | 
			
		||||
        public bool FridgeState
 | 
			
		||||
        {
 | 
			
		||||
            get => _fridgeState;
 | 
			
		||||
            set => SetProperty(ref _fridgeState, value);
 | 
			
		||||
        }
 | 
			
		||||
        //报警状态:true关;false开
 | 
			
		||||
        private bool _alarmState;
 | 
			
		||||
        public bool AlarmState
 | 
			
		||||
        {
 | 
			
		||||
            get => _alarmState;
 | 
			
		||||
            set => SetProperty(ref _alarmState, value);
 | 
			
		||||
        } 
 | 
			
		||||
 | 
			
		||||
        private int _defaultLoginMode;//1开0关
 | 
			
		||||
 | 
			
		||||
        private int _defaultAlarmMode;//1开0关
 | 
			
		||||
 | 
			
		||||
        private float retTemperature = Convert.ToSingle(ConfigurationManager.AppSettings["temperatureValue"]);
 | 
			
		||||
 | 
			
		||||
        private PortUtil _portUtil;
 | 
			
		||||
        IEventAggregator _eventAggregator;
 | 
			
		||||
        public FridgeOnlyWindowViewModel(PortUtil portUtil, IEventAggregator eventAggregator)
 | 
			
		||||
        {
 | 
			
		||||
            _portUtil = portUtil;
 | 
			
		||||
            _eventAggregator = eventAggregator;
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 保存按钮
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public DelegateCommand SaveCommand { get => new DelegateCommand(SaveAction, () => !IsInvalid); }
 | 
			
		||||
 | 
			
		||||
        public bool KeepAlive => false;
 | 
			
		||||
 | 
			
		||||
        private async void SaveAction()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                _portUtil.FridgeOperate = true;
 | 
			
		||||
 | 
			
		||||
                //设置温度值验证不通过则直接返回不保存
 | 
			
		||||
                //获取冰箱温度
 | 
			
		||||
                //if (_fridgeState != _defaultLoginMode.Equals(1))
 | 
			
		||||
                //{
 | 
			
		||||
                //    ConfigurationManager.RefreshSection("FridgeState");
 | 
			
		||||
                //发送冰箱使能/失能指令
 | 
			
		||||
                if (_fridgeState)
 | 
			
		||||
                {
 | 
			
		||||
                    await _portUtil.FridgeOff(1);
 | 
			
		||||
                    Thread.Sleep(100);
 | 
			
		||||
                    CommonClass.SaveAppSetting("FridgeState", "0");
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    await _portUtil.FridegOpen(1);
 | 
			
		||||
                    Thread.Sleep(100);
 | 
			
		||||
                    CommonClass.SaveAppSetting("FridgeState", "1");
 | 
			
		||||
                }  
 | 
			
		||||
                //发送警报使能/失能指令
 | 
			
		||||
                if (_alarmState)
 | 
			
		||||
                {
 | 
			
		||||
                    await _portUtil.FridgeAlarmOff(1);
 | 
			
		||||
                    Thread.Sleep(100);
 | 
			
		||||
                    CommonClass.SaveAppSetting("AlarmState", "0");
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    await _portUtil.FridgeAlarmOn(1);
 | 
			
		||||
                    Thread.Sleep(100);
 | 
			
		||||
                    CommonClass.SaveAppSetting("AlarmState", "1");
 | 
			
		||||
                }  
 | 
			
		||||
                //设定冰箱1温度区间
 | 
			
		||||
                string[] range = ConfigurationManager.AppSettings["temperatureRange"].Split('-');
 | 
			
		||||
                string[] newRange = TemperatureRange.Split('-');
 | 
			
		||||
                if (range.Length >= 2)
 | 
			
		||||
                {
 | 
			
		||||
                    bool bMix = float.TryParse(range[0], out float Min);
 | 
			
		||||
                    bool bMax = float.TryParse(range[1], out float Max);
 | 
			
		||||
 | 
			
		||||
                    if (bMix && bMax)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (Min != Convert.ToSingle(newRange[0]))
 | 
			
		||||
                        {
 | 
			
		||||
                            //设定冰箱温度最小值
 | 
			
		||||
                            await _portUtil.FridgeMinSetting(Convert.ToSingle(newRange[0]), 1);
 | 
			
		||||
                            Thread.Sleep(100);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (Max != Convert.ToSingle(newRange[1]))
 | 
			
		||||
                        {
 | 
			
		||||
                            Thread.Sleep(100);
 | 
			
		||||
                            //设定冰箱温度最大值
 | 
			
		||||
                            await _portUtil.FridgeMaxSetting(Convert.ToSingle(newRange[1]), 1);
 | 
			
		||||
                            Thread.Sleep(100);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                 
 | 
			
		||||
 | 
			
		||||
                _portUtil.FridgeOperate = false;
 | 
			
		||||
                AlertMsg alertMsg = new AlertMsg
 | 
			
		||||
                {
 | 
			
		||||
                    Message = $"保存成功",
 | 
			
		||||
                    Type = MsgType.SUCCESS
 | 
			
		||||
                };
 | 
			
		||||
                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg); 
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception ex)
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                AlertMsg alertMsg = new AlertMsg
 | 
			
		||||
                {
 | 
			
		||||
                    Message = $"保存异常{ex.ToString}",
 | 
			
		||||
                    Type = MsgType.ERROR
 | 
			
		||||
                };
 | 
			
		||||
                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
			
		||||
                _portUtil.FridgeOperate = false;
 | 
			
		||||
            }
 | 
			
		||||
        } 
 | 
			
		||||
        //手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
 | 
			
		||||
        public int ReadAppSetting(string key)
 | 
			
		||||
        {
 | 
			
		||||
            string xPath = "/configuration/appSettings//add[@key='" + key + "']";
 | 
			
		||||
            XmlDocument doc = new XmlDocument();
 | 
			
		||||
            string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
 | 
			
		||||
            doc.Load(exeFileName + ".dll.config");
 | 
			
		||||
            XmlNode node = doc.SelectSingleNode(xPath);
 | 
			
		||||
            return Convert.ToInt32(node.Attributes["value"].Value);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnNavigatedTo(NavigationContext navigationContext)
 | 
			
		||||
        {
 | 
			
		||||
            _fridgeState = ReadAppSetting("FridgeState").Equals(0);
 | 
			
		||||
            _defaultLoginMode = ReadAppSetting("FridgeState");
 | 
			
		||||
            _defaultAlarmMode = ReadAppSetting("AlarmState");
 | 
			
		||||
            _alarmState = ReadAppSetting("AlarmState").Equals(0);
 | 
			
		||||
 | 
			
		||||
            GetTemperature();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bool IsNavigationTarget(NavigationContext navigationContext)
 | 
			
		||||
        {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnNavigatedFrom(NavigationContext navigationContext)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
        } 
 | 
			
		||||
        //获取冰箱温度值,如有更改则保存更改
 | 
			
		||||
        private async Task GetTemperature()
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            //float retT = await _portUtil.GetFridgeTemperature();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -128,6 +128,17 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                                    _regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            else if (value.PremissionPath.Equals("SettingMainWindow") || value.PremissionPath.Equals("SettingWindow"))
 | 
			
		||||
                            {
 | 
			
		||||
                                if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"])>0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
 | 
			
		||||
                                }
 | 
			
		||||
                                else
 | 
			
		||||
                                {
 | 
			
		||||
                                    _regionManager.RequestNavigate("ContentRegion", "SettingWindow");
 | 
			
		||||
                                } 
 | 
			
		||||
                            }
 | 
			
		||||
                            else
 | 
			
		||||
                            {
 | 
			
		||||
                                _regionManager.RequestNavigate("ContentRegion", value.PremissionPath);
 | 
			
		||||
| 
						 | 
				
			
			@ -300,9 +311,13 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                byte[] data = null;
 | 
			
		||||
                float retT = await _portUtil.GetFridgeTemperature(1); 
 | 
			
		||||
                Thread.Sleep(80);
 | 
			
		||||
                WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃;";
 | 
			
		||||
                if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 1)
 | 
			
		||||
                {
 | 
			
		||||
                    float retTemp = await _portUtil.GetFridgeTemperature(2);
 | 
			
		||||
                    Thread.Sleep(80);
 | 
			
		||||
                WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃;{retTemp}℃";
 | 
			
		||||
                    WD += $"{retTemp}℃";
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -396,18 +396,27 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                PremissionName = "角色管理",
 | 
			
		||||
                PremissionPath = "RoleManagerWindow",
 | 
			
		||||
            };
 | 
			
		||||
            //PremissionDm sysset3 = new PremissionDm
 | 
			
		||||
            //{
 | 
			
		||||
            //    Id = 53,
 | 
			
		||||
            //    PremissionName = "设置",
 | 
			
		||||
            //    PremissionPath = "SettingWindow",
 | 
			
		||||
            //};
 | 
			
		||||
            PremissionDm sysset3 = new PremissionDm
 | 
			
		||||
            PremissionDm sysset3;
 | 
			
		||||
            if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 0)
 | 
			
		||||
            {
 | 
			
		||||
                //有冰箱,需要冰箱设置(两个冰箱)
 | 
			
		||||
                sysset3 = new PremissionDm
 | 
			
		||||
                {
 | 
			
		||||
                    Id = 53,
 | 
			
		||||
                    PremissionName = "设置",
 | 
			
		||||
                    PremissionPath = "SettingMainWindow",
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                sysset3 = new PremissionDm
 | 
			
		||||
                {
 | 
			
		||||
                    Id = 53,
 | 
			
		||||
                    PremissionName = "设置",
 | 
			
		||||
                    PremissionPath = "SettingWindow",
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
            syssetChild.Add(sysset1);
 | 
			
		||||
            syssetChild.Add(sysset2);
 | 
			
		||||
            syssetChild.Add(sysset3);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@ using Prism.Regions;
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Collections.ObjectModel;
 | 
			
		||||
using System.Configuration;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
| 
						 | 
				
			
			@ -59,7 +60,14 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
        {
 | 
			
		||||
            if (SettingPages is null || SettingPages.Count <= 0)
 | 
			
		||||
            {
 | 
			
		||||
                SettingPages=new ObservableCollection<SettingPage>(SqlSugarHelper.Db.Queryable<SettingPage>().ToList());
 | 
			
		||||
                if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) <= 1)
 | 
			
		||||
                {
 | 
			
		||||
                    SettingPages = new ObservableCollection<SettingPage>(SqlSugarHelper.Db.Queryable<SettingPage>().Where(p=>p.Id!="2").ToList());
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    SettingPages = new ObservableCollection<SettingPage>(SqlSugarHelper.Db.Queryable<SettingPage>().Where(p => p.Id != "3").ToList());
 | 
			
		||||
                }
 | 
			
		||||
                if (SettingPages.Count > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    if (string.IsNullOrEmpty(defaultView))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
<UserControl x:Class="DM_Weight.Views.FridgeOnlyWindow"
 | 
			
		||||
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
			
		||||
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 | 
			
		||||
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 | 
			
		||||
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
 | 
			
		||||
             xmlns:local="clr-namespace:DM_Weight.Views"
 | 
			
		||||
              xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" 
 | 
			
		||||
             xmlns:rules="clr-namespace:DM_Weight.Common"
 | 
			
		||||
             xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
 | 
			
		||||
             xmlns:behavior="clr-namespace:DM_Weight.Commons.ValidatRules;assembly=DM_Weight.Commons"
 | 
			
		||||
             mc:Ignorable="d" 
 | 
			
		||||
             d:DesignHeight="450" d:DesignWidth="800">
 | 
			
		||||
    <i:Interaction.Behaviors>
 | 
			
		||||
        <behavior:ValidationErrorMappingBehavior HasValidationError="{Binding IsInvalid, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
 | 
			
		||||
    </i:Interaction.Behaviors>
 | 
			
		||||
    <Grid Width="400">
 | 
			
		||||
        <Grid.ColumnDefinitions>
 | 
			
		||||
            <ColumnDefinition Width="2*"/>
 | 
			
		||||
            <ColumnDefinition Width="2*"/> 
 | 
			
		||||
        </Grid.ColumnDefinitions>
 | 
			
		||||
        <Grid.RowDefinitions>
 | 
			
		||||
            <RowDefinition Height="*"/>
 | 
			
		||||
            <RowDefinition Height="1.2*"/>
 | 
			
		||||
            <RowDefinition Height="2*"/>
 | 
			
		||||
            <RowDefinition Height="2*"/>
 | 
			
		||||
            <RowDefinition Height="2*"/>
 | 
			
		||||
            <RowDefinition Height="*"/>
 | 
			
		||||
        </Grid.RowDefinitions>
 | 
			
		||||
 | 
			
		||||
        <TextBlock Margin="6 0 0 0" Text="冰箱温度区间:" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
 | 
			
		||||
        <TextBox Grid.Row="1"
 | 
			
		||||
                Grid.Column="1"
 | 
			
		||||
                materialDesign:HintAssist.Hint="温度区间2-8度以-分隔"
 | 
			
		||||
                Margin="6 0 0 10"
 | 
			
		||||
                Style="{StaticResource MaterialDesignOutlinedTextBox}">
 | 
			
		||||
            <TextBox.Text>
 | 
			
		||||
                <Binding Path="TemperatureRange" Delay="1000" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
 | 
			
		||||
                    <Binding.ValidationRules>
 | 
			
		||||
                        <rules:TemperatureRangeRule/>
 | 
			
		||||
                    </Binding.ValidationRules>
 | 
			
		||||
                </Binding>
 | 
			
		||||
            </TextBox.Text>
 | 
			
		||||
        </TextBox> 
 | 
			
		||||
        <TextBlock Text="冰箱状态:" Margin="0 18 0 0" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
 | 
			
		||||
        <ToggleButton Grid.Row="2" Grid.Column="1"  Width="38" Height="38" Margin="6 18 0 0"
 | 
			
		||||
            HorizontalAlignment="Left"
 | 
			
		||||
            x:Name="MaterialDesignFilledTextBoxEnabledComboBox"
 | 
			
		||||
            Style="{StaticResource MaterialDesignActionToggleButton}"
 | 
			
		||||
            IsChecked="{Binding FridgeState}"
 | 
			
		||||
            ToolTip="冰箱状态"
 | 
			
		||||
            Content="打开"
 | 
			
		||||
            materialDesign:ToggleButtonAssist.OnContent="关闭" />        
 | 
			
		||||
        <TextBlock Text="报警状态:" Margin="0 18 0 0" Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
 | 
			
		||||
        <ToggleButton Grid.Row="3" Grid.Column="1"  Width="38" Height="38" Margin="6 18 0 0"
 | 
			
		||||
            HorizontalAlignment="Left"
 | 
			
		||||
            Style="{StaticResource MaterialDesignActionToggleButton}"
 | 
			
		||||
            IsChecked="{Binding AlarmState}"
 | 
			
		||||
            ToolTip="报警状态"
 | 
			
		||||
            Content="打开"
 | 
			
		||||
            materialDesign:ToggleButtonAssist.OnContent="关闭" />
 | 
			
		||||
        
 | 
			
		||||
        <Button Grid.Row="4" Grid.ColumnSpan="2"  Content="保存" Command="{Binding SaveCommand}" IsEnabled="{Binding BtnIsEnable}" />
 | 
			
		||||
    </Grid>
 | 
			
		||||
</UserControl>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Windows;
 | 
			
		||||
using System.Windows.Controls;
 | 
			
		||||
using System.Windows.Data;
 | 
			
		||||
using System.Windows.Documents;
 | 
			
		||||
using System.Windows.Input;
 | 
			
		||||
using System.Windows.Media;
 | 
			
		||||
using System.Windows.Media.Imaging;
 | 
			
		||||
using System.Windows.Navigation;
 | 
			
		||||
using System.Windows.Shapes;
 | 
			
		||||
 | 
			
		||||
namespace DM_Weight.Views
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// FridgeOnlyWindow.xaml 的交互逻辑
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public partial class FridgeOnlyWindow : UserControl
 | 
			
		||||
    {
 | 
			
		||||
        public FridgeOnlyWindow()
 | 
			
		||||
        {
 | 
			
		||||
            InitializeComponent();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue