Bladeren bron

添加详情

ltwork 1 jaar geleden
bovenliggende
commit
2665419198

+ 2 - 1
BlankApp1/BlankApp1/App.xaml.cs

@@ -86,7 +86,8 @@ namespace BlankApp1
             containerRegistry.RegisterDialog<AddOrEditDeviceKindView, AddOrEditDeviceKindViewModel>();
             containerRegistry.RegisterDialog<AddOrEditDeviceKindView, AddOrEditDeviceKindViewModel>();
             containerRegistry.RegisterDialog<AddOrEditDeviceView, AddOrEditDeviceViewModel>();
             containerRegistry.RegisterDialog<AddOrEditDeviceView, AddOrEditDeviceViewModel>();
             containerRegistry.RegisterDialog<EditItemDetailView, EditItemDetailViewModel>();
             containerRegistry.RegisterDialog<EditItemDetailView, EditItemDetailViewModel>();
-            
+            containerRegistry.RegisterDialog<ReadSchView, ReadSchViewModel>();
+
         }
         }
 
 
         private IMapper GetMapper(IContainerProvider container)
         private IMapper GetMapper(IContainerProvider container)

+ 30 - 18
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/BaseConfigViewModel.cs

@@ -59,8 +59,8 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             EditCommand = new DelegateCommand<object>(Edit);
             EditCommand = new DelegateCommand<object>(Edit);
             DeleteCommand = new DelegateCommand<object>(Delete);
             DeleteCommand = new DelegateCommand<object>(Delete);
             CopyCommand = new DelegateCommand<object>(Copy);
             CopyCommand = new DelegateCommand<object>(Copy);
-          
             OnLoadCommand = new DelegateCommand(OnLoad);
             OnLoadCommand = new DelegateCommand(OnLoad);
+            ReadDetailCommand = new DelegateCommand<object>(ReadDetail);
             GetConfigOption();
             GetConfigOption();
             GetContent();
             GetContent();
             //添加或修改方案后重新读取
             //添加或修改方案后重新读取
@@ -70,11 +70,6 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             });
             });
         }
         }
 
 
-       
-
-
-
-
 
 
 
 
         #region 私有方法
         #region 私有方法
@@ -90,20 +85,41 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             {
             {
                 DeviceKindNameList.Add(kind);
                 DeviceKindNameList.Add(kind);
             }
             }
-
             DeviceKindName = "---";
             DeviceKindName = "---";
 
 
-        
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// 方案名称输入后触发
+        /// 查看详情
         /// </summary>
         /// </summary>
-        /// <exception cref="NotImplementedException"></exception>
-        private void LostFocusValue()
+        /// <param name="obj"></param>
+
+        private void ReadDetail(object obj)
         {
         {
-            
+           
+
+            //测试方案明细主键ID
+            long schid = (long)obj;
+       
+            DialogParameters parm = new DialogParameters();
+            parm.Add("Key", schid);
+            //弹出详情对话框
+            //弹出详情对话框
+            _dialog.ShowDialog("ReadSchView", parm, async callback =>
+            {
+                if (callback.Result == ButtonResult.OK)
+                {
+                    //更新表格,重新获取
+
+                }
+
+            });
         }
         }
+        /// <summary>
+        /// 复位
+        /// </summary>
+        /// <param name="obj"></param>
+
         private void Reset(object obj)
         private void Reset(object obj)
         {
         {
             ScheduleName = string.Empty;
             ScheduleName = string.Empty;
@@ -129,11 +145,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                 }
                 }
 
 
             }
             }
-            //if (Convert.ToDateTime(StartTime).AddDays(2) < Convert.ToDateTime(EndTime))
-            //{
-            //    MessageBox.Show("起始时间和结束时间间隔不能大于2天,请重新输入", "确认", MessageBoxButton.OK, MessageBoxImage.Warning);
-            //    return;
-            //}
+       
 
 
             conditionConfig = (from a in allConfigList
             conditionConfig = (from a in allConfigList
                                       where (EndTime == string.Empty ? true : (a.CreateTime < Convert.ToDateTime(EndTime)) && (Convert.ToDateTime(StartTime) < a.CreateTime))
                                       where (EndTime == string.Empty ? true : (a.CreateTime < Convert.ToDateTime(EndTime)) && (Convert.ToDateTime(StartTime) < a.CreateTime))
@@ -361,7 +373,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         
         
         public DelegateCommand OnLoadCommand { set; get; }
         public DelegateCommand OnLoadCommand { set; get; }
 
 
-
+        public DelegateCommand<object> ReadDetailCommand { set; get; }
         #endregion
         #endregion
         #region 数据绑定
         #region 数据绑定
         /// <summary>
         /// <summary>

+ 1 - 1
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/EditItemDetailViewModel.cs

@@ -104,7 +104,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
 
 
 
 
         #region idialog接口实现
         #region idialog接口实现
-        public string Title { set; get; } = "新增方案";
+        public string Title { set; get; } = "编辑测试项";
 
 
         public event Action<IDialogResult> RequestClose;
         public event Action<IDialogResult> RequestClose;
 
 

+ 533 - 0
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/ReadSchViewModel.cs

@@ -0,0 +1,533 @@
+using AutoMapper;
+using BizService;
+using Microsoft.Extensions.Logging;
+using Model.Dto;
+using Model.Entities;
+using Newtonsoft.Json;
+using PLCTool.Common;
+using Prism.Commands;
+using Prism.Events;
+using Prism.Mvvm;
+using Prism.Services.Dialogs;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace PLCTool.ViewModels.BasicConfigViewModel
+{
+   
+    public class ReadSchViewModel : BindableBase, IDialogAware
+    {
+        private readonly IDialogService _dialog;
+        private readonly IEventAggregator _aggregator;
+        private readonly IOptionConfigService _optionConfigService;
+        private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
+        private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
+        private readonly IBizTestRecordService _iBizTestRecordService;
+        private readonly IBizTestRecordDtlService _iBizTestRecordDtlService;
+        private readonly IMapper _mapper;
+        private readonly ILogger _logger;
+        private List<OptionConfigDto> _optionConfigs;
+
+        private DateTime startTime = DateTime.Now;
+        private DateTime endTime = DateTime.Now;
+        private int testStatus = 0;  //测试状态 
+        private int testResult = 0; //测试结果
+        private long schId = 0; //方案ID
+        private long globalSchDetailId = 0; //测试方案明细ID
+        private long globalDeviceId = 0; //设备ID
+        private BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto(); //测试方案明细表
+        private const string TestMode = "方案详情";
+
+        private int delayTime = 20;
+        public ReadSchViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService, IMapper mapper, ILogger logger)
+        {
+            _dialog = dialog;
+            _aggregator = aggregator;
+            _optionConfigService = optionConfigService;
+            _basicPlcTestSchemeService = basicPlcTestSchemeService;
+            _basicPlcTestSchemeDtlService = basicPlcTestSchemeDtlService;
+            _iBizTestRecordDtlService = iBizTestRecordDtlService;
+            _iBizTestRecordService = iBizTestRecordService;
+            _mapper = mapper;
+            _logger = logger;
+            CloseCommand = new DelegateCommand(Close);
+         
+            ItemChangeCommand = new DelegateCommand(ItemChange);
+            BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
+            InConList = new ObservableCollection<BasPlcItemConfigDto>();
+            OutConList = new ObservableCollection<BasPlcItemConfigDto>();
+            GetConfigOption();
+
+        }
+        /// <summary>
+        /// 选中测试项
+        /// </summary>
+        private void ItemChange()
+        {
+            var findDtlMsg = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.FirstOrDefault(X => X.item_name == SelectItem);
+            if (findDtlMsg != null)
+            {
+                int id = Convert.ToInt32(findDtlMsg.scheme_dtl_id);
+                // 根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
+                globalSchDetailId = id;
+                GetDetailInfo(id);
+            }
+        }
+
+
+
+
+        #region idialog接口实现
+        public string Title { set; get; } = "手动测试";
+
+        public event Action<IDialogResult> RequestClose;
+
+        public bool CanCloseDialog()
+        {
+            return true;
+        }
+
+        public void OnDialogClosed()
+        {
+
+        }
+
+        public void OnDialogOpened(IDialogParameters parameters)
+        {
+            //编辑
+            var getMsg = parameters.GetValues<long>("Key");
+            ///值不为空,表示修改
+            if (getMsg != null)
+            {
+                foreach (var item in getMsg)
+                {
+                    //测试方案号
+                    schId = item;
+                    var schDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.scheme_dtl_id).ToList(); ;
+                    foreach (var sch in schDtls)
+                    {
+                        long dtlId = sch.scheme_dtl_id;
+
+                        SchItems.Add(sch.item_name);
+                    }
+                    //默认显示第一个测试项的信息
+                    if (schDtls.Count != 0)
+                    {
+                        int id = Convert.ToInt32(schDtls[0].scheme_dtl_id);
+                        globalSchDetailId = id;
+                        // 根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
+                        GetDetailInfo(id);
+                        SelectItemIndex = 0;
+                    }
+
+                }
+
+            }
+            
+
+        }
+
+        /// <summary>
+        /// //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
+        /// </summary>
+        /// <param name="id"></param>
+        private void GetDetailInfo(int schDetailId)
+        {
+            //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
+            var findEntity = _basicPlcTestSchemeDtlService.Find(schDetailId);
+            var findresult = _mapper.Map<bas_plc_test_scheme_dtl, BasicPlcTestSchemeDtlDto>(findEntity);
+            if (findresult != null)
+            {
+                //根据方案id 在方案表中查找方案名 设备名
+                schId = findresult.SchemeId.Value; //方案id,方便下一步查找
+                int intSchId = Convert.ToInt32(findresult.SchemeId);
+
+                var findSch = _basicPlcTestSchemeService.Find(intSchId);
+                if (findSch != null)
+                {
+                    ScheduleName = findSch.scheme_name;
+                    DeviceKindName = findSch.devicekind_name;
+
+                }
+                TestName = findresult.ItemName;
+                SelectTest = findresult.ItemType;
+                //前置项解析
+                string preconStr = findresult.Precondition.ToString();
+                if (!string.IsNullOrEmpty(preconStr))
+                {
+                    JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
+                    BeforeSelectJudge = preconditionModel.ItemType;
+                    SelectLogic = preconditionModel.ItemLogical;
+                    BeforeDetail = preconditionModel.Description;
+                    BeforeConList.Clear();
+                    foreach (var detail in preconditionModel.DetailInfo)
+                    {
+                        BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
+                        basPlcItemConfigDto.Id = detail.Id;
+                        basPlcItemConfigDto.PlcItem = detail.PlcItem;
+                        basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
+                        basPlcItemConfigDto.PlcAddType = detail.PlcAddType;
+                        basPlcItemConfigDto.PlcValue = detail.PlcValue;
+                        basPlcItemConfigDto.Remark = detail.Remark;
+                        BeforeConList.Add(basPlcItemConfigDto);
+                    }
+                }
+
+                //输入项解析
+                string inStr = findresult.Action.ToString();
+                if (!string.IsNullOrEmpty(inStr))
+                {
+                    JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
+                    SelectInJudge = inModel.ItemType;
+                    InSelectLogic = inModel.ItemLogical;
+                    InDetail = inModel.Description;
+                    InConList.Clear();
+                    foreach (var detail in inModel.DetailInfo)
+                    {
+                        BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
+                        basPlcItemConfigDto.Id = detail.Id;
+                        basPlcItemConfigDto.PlcItem = detail.PlcItem;
+                        basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
+                        basPlcItemConfigDto.PlcAddType = detail.PlcAddType;
+                        basPlcItemConfigDto.PlcValue = detail.PlcValue;
+                        basPlcItemConfigDto.Remark = detail.Remark;
+                        InConList.Add(basPlcItemConfigDto);
+                    }
+                }
+
+                //输出项解析
+                string outStr = findresult.JudgementResult.ToString();
+                if (!string.IsNullOrEmpty(outStr))
+                {
+                    JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
+                    SelectOutJudge = outModel.ItemType;
+                    OutSelectLogic = outModel.ItemLogical;
+                    OutDetail = outModel.Description;
+                    OutConList.Clear();
+                    foreach (var detail in outModel.DetailInfo)
+                    {
+                        BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
+                        basPlcItemConfigDto.Id = detail.Id;
+                        basPlcItemConfigDto.PlcItem = detail.PlcItem;
+                        basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
+                        basPlcItemConfigDto.PlcAddType = detail.PlcAddType;
+                        basPlcItemConfigDto.PlcValue = detail.PlcValue;
+                        basPlcItemConfigDto.Remark = detail.Remark;
+                        OutConList.Add(basPlcItemConfigDto);
+                    }
+                }
+
+            }
+        }
+        #endregion
+
+        #region 私有发方法
+ 
+        
+  
+  
+        /// <summary>
+        /// 获取配置
+        /// </summary>
+        private void GetConfigOption()
+        {
+            var configList = _optionConfigService.QueryList();
+            _optionConfigs = _mapper.Map<List<OptionConfig>, List<OptionConfigDto>>(configList);
+            var tests = _optionConfigs.FindAll(x => x.TypeID == 1);
+            TestKinds = new List<string>();
+            foreach (var test in tests)
+            {
+                TestKinds.Add(test.ContentOption);
+            }
+
+            //测试项类型
+            var judges = _optionConfigs.FindAll(x => x.TypeID == 2);
+            foreach (var judge in judges)
+            {
+                BeforeJudgeKinds.Add(judge.ContentOption);
+                InJudgeKinds.Add(judge.ContentOption);
+                OutJudgeKinds.Add(judge.ContentOption);
+            }
+
+            //判定逻辑
+            var logics = _optionConfigs.FindAll(x => x.TypeID == 3);
+            foreach (var logic in logics)
+            {
+                JudgeLogicKinds.Add(logic.ContentOption);
+                InJudgeLogicKinds.Add(logic.ContentOption);
+                OutJudgeLogicKinds.Add(logic.ContentOption);
+
+            }
+
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// 关闭按钮
+        /// </summary>
+        private void Close()
+        {
+            MessageBoxResult boxResult = MessageBox.Show("确认退出自动测试", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
+            if (boxResult == MessageBoxResult.OK)
+            {
+
+                RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
+            }
+
+        }
+
+
+
+
+
+        /// <summary>
+        /// mode转json
+        /// </summary>
+        /// <param name="itemType"></param>
+        /// <param name="itemLogical"></param>
+        /// <param name="description"></param>
+        /// <param name="conList"></param>
+        /// <returns></returns>
+
+        
+        #endregion
+
+
+        #region 命令绑定
+        public DelegateCommand CloseCommand { set; get; }
+
+
+        public DelegateCommand ItemChangeCommand { set; get; }
+
+        #endregion
+        #region 变量绑定
+        /// <summary>
+        /// 测试方案编码
+        /// </summary>
+        private string scheduleName;
+        public string ScheduleName
+        {
+            get { return scheduleName; }
+            set { scheduleName = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 设备名称
+        /// </summary>
+        private string deviceKindName;
+        public string DeviceKindName
+        {
+            get { return deviceKindName; }
+            set { deviceKindName = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 测试项名称
+        /// </summary>
+        private string testName;
+        public string TestName
+        {
+            get { return testName; }
+            set { testName = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 测试项类型
+        /// </summary>
+        private List<string> testKinds = new List<string>();
+        public List<string> TestKinds
+        {
+            get { return testKinds; }
+            set { testKinds = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        private string selectTest;
+        public string SelectTest
+        {
+            get { return selectTest; }
+            set { selectTest = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 判定类型(前置项)
+        /// </summary>
+        private List<string> beforeJudgeKinds = new List<string>();
+        public List<string> BeforeJudgeKinds
+        {
+            get { return beforeJudgeKinds; }
+            set { beforeJudgeKinds = value; RaisePropertyChanged(); }
+        }
+        private string beforeSelectJudge;
+        public string BeforeSelectJudge
+        {
+            get { return beforeSelectJudge; }
+            set { beforeSelectJudge = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 逻辑判断
+        /// </summary>
+        private List<string> judgeLogicKinds = new List<string>();
+        public List<string> JudgeLogicKinds
+        {
+            get { return judgeLogicKinds; }
+            set { judgeLogicKinds = value; RaisePropertyChanged(); }
+        }
+        private string selectLogic;
+        public string SelectLogic
+        {
+            get { return selectLogic; }
+            set { selectLogic = value; RaisePropertyChanged(); }
+        }
+        private string beforeDetail;
+        public string BeforeDetail
+        {
+            get { return beforeDetail; }
+            set { beforeDetail = value; RaisePropertyChanged(); }
+        }
+
+        private ObservableCollection<BasPlcItemConfigDto> beforeConList;
+        public ObservableCollection<BasPlcItemConfigDto> BeforeConList
+        {
+            get { return beforeConList; }
+            set { beforeConList = value; RaisePropertyChanged(); }
+        }
+
+        /// <summary>
+        /// 判定类型(输入项)
+        /// </summary>
+        private List<string> inJudgeKinds = new List<string>();
+        public List<string> InJudgeKinds
+        {
+            get { return inJudgeKinds; }
+            set { inJudgeKinds = value; RaisePropertyChanged(); }
+        }
+        private string selectInJudge;
+        public string SelectInJudge
+        {
+            get { return selectInJudge; }
+            set { selectInJudge = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 逻辑判断
+        /// </summary>
+        private List<string> inJudgeLogicKinds = new List<string>();
+        public List<string> InJudgeLogicKinds
+        {
+            get { return inJudgeLogicKinds; }
+            set { inJudgeLogicKinds = value; RaisePropertyChanged(); }
+        }
+        private string inSelectLogic;
+        public string InSelectLogic
+        {
+            get { return inSelectLogic; }
+            set { inSelectLogic = value; RaisePropertyChanged(); }
+        }
+        private string inDetail;
+        public string InDetail
+        {
+            get { return inDetail; }
+            set { inDetail = value; RaisePropertyChanged(); }
+        }
+
+        private ObservableCollection<BasPlcItemConfigDto> inConList;
+        public ObservableCollection<BasPlcItemConfigDto> InConList
+        {
+            get { return inConList; }
+            set { inConList = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 判定类型(结果项)
+        /// </summary>
+        private List<string> outJudgeKinds = new List<string>();
+        public List<string> OutJudgeKinds
+        {
+            get { return outJudgeKinds; }
+            set { outJudgeKinds = value; RaisePropertyChanged(); }
+        }
+        private string selectOutJudge;
+        public string SelectOutJudge
+        {
+            get { return selectOutJudge; }
+            set { selectOutJudge = value; RaisePropertyChanged(); }
+        }
+        /// <summary>
+        /// 逻辑判断
+        /// </summary>
+        private List<string> outJudgeLogicKinds = new List<string>();
+        public List<string> OutJudgeLogicKinds
+        {
+            get { return outJudgeLogicKinds; }
+            set { outJudgeLogicKinds = value; RaisePropertyChanged(); }
+        }
+        private string outSelectLogic;
+        public string OutSelectLogic
+        {
+            get { return outSelectLogic; }
+            set { outSelectLogic = value; RaisePropertyChanged(); }
+        }
+
+        private string outDetail;
+        public string OutDetail
+        {
+            get { return outDetail; }
+            set { outDetail = value; RaisePropertyChanged(); }
+        }
+        private ObservableCollection<BasPlcItemConfigDto> outConList;
+        public ObservableCollection<BasPlcItemConfigDto> OutConList
+        {
+            get { return outConList; }
+            set { outConList = value; RaisePropertyChanged(); }
+        }
+
+        private int stepIndex = 0;
+        public int StepIndex
+        {
+            get { return stepIndex; }
+            set { stepIndex = value; RaisePropertyChanged(); }
+        }
+
+        private Visibility proVisibility = Visibility.Hidden;
+        public Visibility ProVisibility
+        {
+            get { return proVisibility; }
+            set { proVisibility = value; RaisePropertyChanged(); }
+        }
+        private bool startEnalbe = true;
+        public bool StartEnalbe
+        {
+            get { return startEnalbe; }
+            set { startEnalbe = value; RaisePropertyChanged(); }
+        }
+        //所有测试项列表
+        private List<string> schItems = new List<string>();
+        public List<string> SchItems
+        {
+            get { return schItems; }
+            set { schItems = value; RaisePropertyChanged(); }
+        }
+        //所选测试方案
+        private string selectItem;
+        public string SelectItem
+        {
+            get { return selectItem; }
+            set { selectItem = value; RaisePropertyChanged(); }
+        }
+
+        private int selectItemIndex;
+        public int SelectItemIndex
+        {
+            get { return selectItemIndex; }
+            set { selectItemIndex = value; RaisePropertyChanged(); }
+        }
+
+        #endregion
+
+    }
+}

+ 9 - 2
BlankApp1/BlankApp1/Views/BasicConfigView/BaseConfigView.xaml

@@ -67,7 +67,7 @@
         </Grid>
         </Grid>
         <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
         <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
                   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
                   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
-                 ItemsSource="{Binding BaseConfigList}" IsReadOnly="True" Padding="0"  >
+                 ItemsSource="{Binding BaseConfigList}" IsReadOnly="True" Padding="0" HorizontalScrollBarVisibility="Disabled"  >
             <DataGrid.Columns >
             <DataGrid.Columns >
                 <DataGridTextColumn Header="序号" Width="50" Binding="{Binding SchemeId}" CellStyle="{StaticResource MyDataGridCellStyle}" />
                 <DataGridTextColumn Header="序号" Width="50" Binding="{Binding SchemeId}" CellStyle="{StaticResource MyDataGridCellStyle}" />
                 <DataGridTextColumn Header="测试方案名称" Binding="{Binding SchemeName}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                 <DataGridTextColumn Header="测试方案名称" Binding="{Binding SchemeName}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
@@ -79,7 +79,14 @@
                         <DataGridTemplateColumn.CellTemplate>
                         <DataGridTemplateColumn.CellTemplate>
                             <DataTemplate>
                             <DataTemplate>
                                 <StackPanel Orientation="Horizontal">
                                 <StackPanel Orientation="Horizontal">
-                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+     Command="{Binding DataContext.ReadDetailCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding SchemeId}" Cursor="Hand" Margin="0,0,10,0" >
+                                  
+                                    <StackPanel Orientation="Horizontal">
+                                        <TextBlock  Text="查看详情" VerticalAlignment="Center" Foreground="Blue"/>
+                                    </StackPanel>
+                                </Button>
+                                <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
                                         Command="{Binding DataContext.EditCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}"  Cursor="Hand" Margin="0,0,10,0" >
                                         Command="{Binding DataContext.EditCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}"  Cursor="Hand" Margin="0,0,10,0" >
                                     <Button.CommandParameter>
                                     <Button.CommandParameter>
                                         <MultiBinding Converter="{ StaticResource ResourceKey=TwoParConverter}">
                                         <MultiBinding Converter="{ StaticResource ResourceKey=TwoParConverter}">

+ 3 - 3
BlankApp1/BlankApp1/Views/BasicConfigView/EditItemDetailView.xaml

@@ -4,10 +4,10 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:local="clr-namespace:PLCTool.Views.BasicConfigView"
              xmlns:local="clr-namespace:PLCTool.Views.BasicConfigView"
-                         xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
+             xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
              xmlns:prism="http://prismlibrary.com/" 
              xmlns:prism="http://prismlibrary.com/" 
              BorderBrush="#CBCBCB" BorderThickness="1"
              BorderBrush="#CBCBCB" BorderThickness="1"
-             Height="700" Width="1100" >
+             Height="600" Width="1100" >
 
 
     <UserControl.Resources>
     <UserControl.Resources>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
@@ -71,7 +71,7 @@
                 <Border Grid.Row="0"  BorderBrush="#CBCBCB" BorderThickness="0,1" />
                 <Border Grid.Row="0"  BorderBrush="#CBCBCB" BorderThickness="0,1" />
 
 
 
 
-                <Border  Grid.Row="1" BorderBrush="#409EFF"  BorderThickness="1" Margin="5" >
+            <Border  Grid.Row="1" BorderBrush="#CBCBCB"  BorderThickness="1" Margin="5" >
 
 
                     <Grid>
                     <Grid>
                         <Grid.RowDefinitions>
                         <Grid.RowDefinitions>

+ 1 - 1
BlankApp1/BlankApp1/Views/BasicConfigView/EditSchView.xaml

@@ -93,7 +93,7 @@
                     </StackPanel>
                     </StackPanel>
                     <DataGrid    ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
                     <DataGrid    ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
  ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2" 
  ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2" 
-ItemsSource="{Binding SchProjectList}" IsReadOnly="True" Margin="5" Padding="0" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" >
+ItemsSource="{Binding SchProjectList}" IsReadOnly="True" Margin="5" Padding="0" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled">
                             <b:Interaction.Triggers>
                             <b:Interaction.Triggers>
                                 <b:EventTrigger EventName="SelectionChanged">
                                 <b:EventTrigger EventName="SelectionChanged">
                                     <b:InvokeCommandAction Command="{Binding DgSelectChangeCommand}" 
                                     <b:InvokeCommandAction Command="{Binding DgSelectChangeCommand}" 

+ 288 - 0
BlankApp1/BlankApp1/Views/BasicConfigView/ReadSchView.xaml

@@ -0,0 +1,288 @@
+<UserControl x:Class="PLCTool.Views.BasicConfigView.ReadSchView"
+             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:PLCTool.Views.BasicConfigView"
+                       xmlns:hc="https://handyorg.github.io/handycontrol"
+             xmlns:prism="http://prismlibrary.com/" 
+             xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
+             xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
+             BorderBrush="#CBCBCB" BorderThickness="1"
+             Height="600" Width="1100" >
+
+    <UserControl.Resources>
+        <Style TargetType="TextBlock" x:Key="textBlockStyle">
+            <Setter Property="Width" Value="80"/>
+            <Setter Property="FontSize" Value="12"/>
+            <Setter Property="VerticalAlignment" Value="Center"/>
+            <Setter Property="TextAlignment" Value="Right"/>
+            <Setter Property="Margin" Value="0,0,5,0"/>
+        </Style>
+        <Style TargetType="ListBoxItem">
+            <Style.Triggers>
+                <Trigger Property="ListBoxItem.IsSelected" Value="True">
+                    <Setter Property="ListBoxItem.Background" Value="red"/>
+                </Trigger>
+
+            </Style.Triggers>
+        </Style>
+
+
+    </UserControl.Resources>
+
+    <Grid>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="auto"/>
+            <ColumnDefinition/>
+        </Grid.ColumnDefinitions>
+        <DockPanel Grid.Column="0" LastChildFill="True">
+            <TextBlock Text="测试项列表:"  Style="{StaticResource NormalTextBlockStyle}" Margin="5,0,5,0" DockPanel.Dock="Top"/>
+            <ListBox ItemsSource="{Binding SchItems}" SelectedValue="{Binding SelectItem}" SelectedIndex="{Binding SelectItemIndex}" >
+
+                <b:Interaction.Triggers>
+                    <b:EventTrigger EventName="SelectionChanged">
+                        <b:InvokeCommandAction Command="{Binding ItemChangeCommand}"/>
+                    </b:EventTrigger>
+                </b:Interaction.Triggers>
+            </ListBox>
+
+        </DockPanel>
+        <Border Grid.Column="0"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
+        <Grid Grid.Column="1">
+            <Grid.RowDefinitions>
+
+                <RowDefinition Height="50" />
+                <RowDefinition />
+                <RowDefinition />
+                <RowDefinition />
+               
+            </Grid.RowDefinitions>
+
+            <StackPanel Orientation="Horizontal" Grid.Row="0" Margin="10">
+                <StackPanel Orientation="Horizontal">
+                    <TextBlock Text="测试方案名称:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
+                    <TextBox  Height="28" Width="120" Text="{Binding ScheduleName}" IsReadOnly="True" />
+                </StackPanel>
+                <StackPanel Orientation="Horizontal">
+                    <TextBlock Text="设备类型:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
+                    <TextBox  Height="28" Width="120" Text="{Binding DeviceKindName}" IsReadOnly="True" />
+                </StackPanel>
+                <StackPanel Orientation="Horizontal" >
+                    <TextBlock Text="测试项类型:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
+                    <TextBox  Height="28" Width="120"  Text="{Binding SelectTest}" IsReadOnly="True"  />
+                </StackPanel>
+                <StackPanel Orientation="Horizontal">
+                    <TextBlock Text="测试项名称:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
+                    <TextBox  Height="28" Width="160"  Text="{Binding TestName}" IsReadOnly="True" />
+                </StackPanel>
+
+            </StackPanel>
+            <Border Grid.Row="0"  BorderBrush="#CBCBCB" BorderThickness="0,1" />
+            <Grid Grid.Row="1">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="80"/>
+                    <ColumnDefinition/>
+                    <ColumnDefinition Width="1.6*"/>
+                </Grid.ColumnDefinitions>
+                <TextBlock Grid.Column="0" Text="前置项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
+                </TextBlock>
+                <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
+                <Grid Grid.Column="1">
+                    <Grid.RowDefinitions>
+                        <RowDefinition/>
+                        <RowDefinition/>
+                        <RowDefinition Height="2*"/>
+                    </Grid.RowDefinitions>
+                    <Grid Grid.Row="0">
+                        <StackPanel Orientation="Horizontal" >
+                            <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
+                            <TextBox  Height="28" Width="150"  Text="{Binding BeforeSelectJudge}" IsReadOnly="True"  />
+                        </StackPanel>
+                    </Grid>
+                    <Grid Grid.Row="1"  >
+                        <StackPanel Orientation="Horizontal" >
+                            <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
+                            <TextBox  Height="28" Width="150" Text="{Binding SelectLogic}" IsReadOnly="True" />
+                        </StackPanel>
+                    </Grid>
+                    <Grid Grid.Row="2">
+                        <DockPanel LastChildFill="True" >
+                            <TextBlock Text="前置项描述:"   Style="{StaticResource textBlockStyle}" />
+                            <RichTextBox  Margin="0,5,5,5" IsReadOnly="True" >
+                                <FlowDocument>
+                                    <Paragraph>
+                                        <Run Text="{Binding BeforeDetail,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+                                    </Paragraph>
+                                </FlowDocument>
+
+                            </RichTextBox>
+                        </DockPanel>
+                    </Grid>
+                </Grid>
+                <Grid Grid.Column="2" >
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="30"/>
+                        <RowDefinition/>
+                    </Grid.RowDefinitions>
+                    <DockPanel LastChildFill="False">
+                        <TextBlock Text="前置项明细:"   Style="{StaticResource textBlockStyle}" />
+
+                    </DockPanel>
+                    <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
+            ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}" x:Name="DeviceDataGrid" RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
+              ItemsSource="{Binding BeforeConList}"  IsReadOnly="True" Padding="0" >
+                        <DataGrid.Columns >
+                            <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                            <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                            <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            
+                        </DataGrid.Columns>
+
+                    </DataGrid>
+
+                </Grid>
+            </Grid>
+            <Grid Grid.Row="2">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="80"/>
+                    <ColumnDefinition/>
+                    <ColumnDefinition Width="1.6*"/>
+                </Grid.ColumnDefinitions>
+                <TextBlock Grid.Column="0" Text="输入项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
+                </TextBlock>
+                <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
+                <Grid Grid.Column="1">
+                    <Grid.RowDefinitions>
+                        <RowDefinition/>
+                        <RowDefinition/>
+                        <RowDefinition Height="2*"/>
+                    </Grid.RowDefinitions>
+                    <Grid Grid.Row="0">
+                        <StackPanel Orientation="Horizontal" >
+                            <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
+                            <TextBox  Height="28" Width="150"  Text="{Binding SelectInJudge}" IsReadOnly="True" />
+                        </StackPanel>
+                    </Grid>
+                    <Grid Grid.Row="1"  >
+                        <StackPanel Orientation="Horizontal" >
+                            <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
+                            <TextBox  Height="28" Width="150"  Text="{Binding InSelectLogic}" IsReadOnly="True" />
+                        </StackPanel>
+                    </Grid>
+                    <Grid Grid.Row="2">
+                        <DockPanel LastChildFill="True" >
+                            <TextBlock Text="输入项描述:"   Style="{StaticResource textBlockStyle}" />
+                            <RichTextBox  Margin="0,5,5,5" IsReadOnly="True"  >
+                                <FlowDocument>
+                                    <Paragraph>
+                                        <Run Text="{Binding InDetail,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+                                    </Paragraph>
+                                </FlowDocument>
+
+                            </RichTextBox>
+                        </DockPanel>
+                    </Grid>
+                </Grid>
+                <Grid Grid.Column="2" >
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="30"/>
+                        <RowDefinition/>
+                    </Grid.RowDefinitions>
+                    <DockPanel LastChildFill="False">
+                        <TextBlock Text="输入项明细:"   Style="{StaticResource textBlockStyle}" />
+
+                    </DockPanel>
+                    <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
+ ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}" RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
+   ItemsSource="{Binding InConList}"  IsReadOnly="True" Padding="0">
+                        <DataGrid.Columns >
+                            <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                            <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                            <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                          
+                        </DataGrid.Columns>
+
+                    </DataGrid>
+
+                </Grid>
+            </Grid>
+            <Border Grid.Row="2"  BorderBrush="#CBCBCB" BorderThickness="0,1,0,0" />
+            <Grid Grid.Row="3">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="80"/>
+                    <ColumnDefinition/>
+                    <ColumnDefinition Width="1.6*"/>
+                </Grid.ColumnDefinitions>
+                <TextBlock Grid.Column="0" Text="结果项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
+                </TextBlock>
+                <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
+                <Grid Grid.Column="1">
+                    <Grid.RowDefinitions>
+                        <RowDefinition/>
+                        <RowDefinition/>
+                        <RowDefinition Height="2*"/>
+                    </Grid.RowDefinitions>
+                    <Grid Grid.Row="0">
+                        <StackPanel Orientation="Horizontal" >
+                            <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
+                            <TextBox  Height="28" Width="150"  Text="{Binding SelectOutJudge}" IsReadOnly="True" />
+                        </StackPanel>
+                    </Grid>
+                    <Grid Grid.Row="1"  >
+                        <StackPanel Orientation="Horizontal" >
+                            <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
+                            <TextBox  Height="28" Width="150"  Text="{Binding OutSelectLogic}" IsReadOnly="True" />
+                        </StackPanel>
+                    </Grid>
+                    <Grid Grid.Row="2">
+                        <DockPanel LastChildFill="True" >
+                            <TextBlock Text="结果项描述:"   Style="{StaticResource textBlockStyle}" />
+                            <RichTextBox  Margin="0,5,5,5" IsReadOnly="True" >
+                                <FlowDocument>
+                                    <Paragraph>
+                                        <Run Text="{Binding OutDetail,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+                                    </Paragraph>
+                                </FlowDocument>
+
+                            </RichTextBox>
+                        </DockPanel>
+                    </Grid>
+                </Grid>
+                <Grid Grid.Column="2" >
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="30"/>
+                        <RowDefinition/>
+                    </Grid.RowDefinitions>
+                    <DockPanel LastChildFill="False">
+                        <TextBlock Text="输出项明细:"   Style="{StaticResource textBlockStyle}" />
+                    </DockPanel>
+                    <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
+ ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
+   ItemsSource="{Binding OutConList}"  IsReadOnly="True" Padding="0">
+                        <DataGrid.Columns >
+
+                            <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                            <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                            <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            
+                        </DataGrid.Columns>
+
+                    </DataGrid>
+
+                </Grid>
+            </Grid>
+            <Border Grid.Row="3"  BorderBrush="#CBCBCB" BorderThickness="0,1,0,1" />
+         
+            
+            
+        </Grid>
+
+    </Grid>
+</UserControl>

+ 28 - 0
BlankApp1/BlankApp1/Views/BasicConfigView/ReadSchView.xaml.cs

@@ -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 PLCTool.Views.BasicConfigView
+{
+    /// <summary>
+    /// ReadSchView.xaml 的交互逻辑
+    /// </summary>
+    public partial class ReadSchView : UserControl
+    {
+        public ReadSchView()
+        {
+            InitializeComponent();
+        }
+    }
+}

+ 4 - 12
BlankApp1/BlankApp1/Views/BusinessManageView/DeviceResultCardView.xaml

@@ -6,7 +6,7 @@
              xmlns:local="clr-namespace:PLCTool.Views.BusinessManageView"
              xmlns:local="clr-namespace:PLCTool.Views.BusinessManageView"
              xmlns:prism="http://prismlibrary.com/"
              xmlns:prism="http://prismlibrary.com/"
               prism:ViewModelLocator.AutoWireViewModel="True"
               prism:ViewModelLocator.AutoWireViewModel="True"
-             Height="240" Width="280">
+             Height="260" Width="280">
     <Border BorderBrush="#CBCBCB"  BorderThickness="1" CornerRadius="5">
     <Border BorderBrush="#CBCBCB"  BorderThickness="1" CornerRadius="5">
         <Grid>
         <Grid>
 
 
@@ -23,7 +23,7 @@
                 <TextBlock  x:Name="txtName" Text="{Binding ProjectName}" Foreground="White" FontSize="30" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                 <TextBlock  x:Name="txtName" Text="{Binding ProjectName}" Foreground="White" FontSize="30" HorizontalAlignment="Center" VerticalAlignment="Center"/>
             </Border>
             </Border>
 
 
-            <Grid Grid.Row="1">
+            <Grid Grid.Row="1" Margin="0,0,0,10">
                 <Grid.ColumnDefinitions>
                 <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="2*"/>
                     <ColumnDefinition Width="2*"/>
                     <ColumnDefinition Width="3*"/>
                     <ColumnDefinition Width="3*"/>
@@ -34,17 +34,9 @@
                     <RowDefinition/>
                     <RowDefinition/>
                     <RowDefinition/>
                     <RowDefinition/>
                     <RowDefinition/>
                     <RowDefinition/>
-                    <RowDefinition/>
+                    <RowDefinition />
                 </Grid.RowDefinitions>
                 </Grid.RowDefinitions>
-                <Grid.Resources>
-                    <Style TargetType="Label">
-                        <Setter Property="FontSize" Value="20"/>
-                        <Setter Property="Width" Value="auto"/>
-                        <Setter Property="HorizontalAlignment" Value="Right"/>
-                        <Setter Property="VerticalAlignment" Value="Center"/>
-                        <Setter Property="Margin" Value="10 0 0 0"/>
-                    </Style>
-                </Grid.Resources>
+          
                 <TextBlock Margin="0,10,0,0" Style="{StaticResource NormalTextBlockStyle}"  Grid.Row="0" Text="项目代号:" TextAlignment="Right"/>
                 <TextBlock Margin="0,10,0,0" Style="{StaticResource NormalTextBlockStyle}"  Grid.Row="0" Text="项目代号:" TextAlignment="Right"/>
                 <TextBlock Margin="0,10,0,0" Style="{StaticResource NormalTextBlockStyle}" Grid.Row="1" Text="负责人:" TextAlignment="Right"/>
                 <TextBlock Margin="0,10,0,0" Style="{StaticResource NormalTextBlockStyle}" Grid.Row="1" Text="负责人:" TextAlignment="Right"/>
                 <TextBlock Margin="0,10,0,0" Style="{StaticResource NormalTextBlockStyle}" Grid.Row="2" Text="设备数量:" TextAlignment="Right"/>
                 <TextBlock Margin="0,10,0,0" Style="{StaticResource NormalTextBlockStyle}" Grid.Row="2" Text="设备数量:" TextAlignment="Right"/>

+ 2 - 2
BlankApp1/BlankApp1/Views/BusinessManageView/DeviceTestView.xaml

@@ -75,7 +75,7 @@
         </Grid>
         </Grid>
         <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
         <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
                   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
                   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
-                 ItemsSource="{Binding DeviceItemList}" IsReadOnly="True" Padding="0"  >
+                 ItemsSource="{Binding DeviceItemList}" IsReadOnly="True" Padding="0" HorizontalScrollBarVisibility="Disabled" >
             <b:Interaction.Triggers>
             <b:Interaction.Triggers>
                 <b:EventTrigger EventName="SelectionChanged">
                 <b:EventTrigger EventName="SelectionChanged">
                     <b:InvokeCommandAction  Command="{Binding DataContext.DgSelectChangeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" 
                     <b:InvokeCommandAction  Command="{Binding DataContext.DgSelectChangeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" 
@@ -111,7 +111,7 @@
         </Grid>
         </Grid>
         <DataGrid  Grid.Row="4"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
         <DataGrid  Grid.Row="4"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
            ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
            ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
-          ItemsSource="{Binding SchItemList}" IsReadOnly="True" Padding="0"  >
+          ItemsSource="{Binding SchItemList}" IsReadOnly="True" Padding="0"  HorizontalScrollBarVisibility="Disabled">
             <DataGrid.Columns >
             <DataGrid.Columns >
                 <DataGridTextColumn Header="序号" Width="50" Binding="{Binding DeviceId}" CellStyle="{StaticResource MyDataGridCellStyle}" />
                 <DataGridTextColumn Header="序号" Width="50" Binding="{Binding DeviceId}" CellStyle="{StaticResource MyDataGridCellStyle}" />
               
               

+ 2 - 2
BlankApp1/BlankApp1/Views/BusinessManageView/ResultQueryView.xaml

@@ -74,7 +74,7 @@
         </Grid>
         </Grid>
         <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
         <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
        ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
        ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
-      ItemsSource="{Binding DeviceResultItemList}" IsReadOnly="True" Padding="0"  >
+      ItemsSource="{Binding DeviceResultItemList}" IsReadOnly="True" Padding="0" HorizontalScrollBarVisibility="Disabled" >
             <b:Interaction.Triggers>
             <b:Interaction.Triggers>
                 <b:EventTrigger EventName="SelectionChanged">
                 <b:EventTrigger EventName="SelectionChanged">
                     <b:InvokeCommandAction  Command="{Binding DataContext.DgSelectChangeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" 
                     <b:InvokeCommandAction  Command="{Binding DataContext.DgSelectChangeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" 
@@ -111,7 +111,7 @@
         <Grid Grid.Row="4">
         <Grid Grid.Row="4">
             <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
             <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
  ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
  ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
-ItemsSource="{Binding SchItemResultList}" IsReadOnly="True" Padding="0"  >
+ItemsSource="{Binding SchItemResultList}" IsReadOnly="True" Padding="0"  HorizontalScrollBarVisibility="Disabled">
                 <DataGrid.Columns >
                 <DataGrid.Columns >
                     <DataGridTextColumn Header="设备编号" Binding="{Binding DeviceNo}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                     <DataGridTextColumn Header="设备编号" Binding="{Binding DeviceNo}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                     <DataGridTextColumn Header="设备名称" Binding="{Binding DeviceName}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                     <DataGridTextColumn Header="设备名称" Binding="{Binding DeviceName}" CellStyle="{StaticResource MyDataGridCellStyle}"/>