浏览代码

添加面包靴

ltwork 1 年之前
父节点
当前提交
ebfa1648f5

+ 15 - 0
BlankApp1/BlankApp1/Events/BreadEvent.cs

@@ -0,0 +1,15 @@
+using PLCTool.Models;
+using Prism.Events;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PLCTool.Events
+{
+    public  class BreadEvent : PubSubEvent<List<CrumbViewModel>>
+    {
+        
+    }
+}

+ 7 - 0
BlankApp1/BlankApp1/Models/CrumbViewModel.cs

@@ -15,6 +15,13 @@ namespace PLCTool.Models
             get { return _name; }
             set { SetProperty(ref _name, value); }
         }
+
+        private string navigateRegion;
+        public string NavigateRegion
+        {
+            get { return navigateRegion; }
+            set { SetProperty(ref navigateRegion, value); }
+        }
     }
 
 }

+ 23 - 12
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/BaseConfigViewModel.cs

@@ -6,6 +6,8 @@ using MiniExcelLibs;
 using Model;
 using Model.Dto;
 using Model.Entities;
+using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -40,6 +42,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private List<BasicPlcTestSchemeDto> conditionConfig = new List<BasicPlcTestSchemeDto>();//符合条件的方案
 
         private const int PageCount = 1; //每一页显示个数
+        private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
         public BaseConfigViewModel(IDialogService dialog, IEventAggregator aggregator, IRegionManager regionManager, IMenuService menuService, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService , IBasicDeviceKindService iBasicDeviceKindService, IMapper mapper, ILogger logger)
         {
             _dialog = dialog;
@@ -68,6 +71,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             {
                 GetContent();
             });
+           
         }
 
 
@@ -87,6 +91,12 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             }
             DeviceKindName = "---";
 
+            //发布面包靴
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "基础设置",NavigateRegion="BaseConfigView" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "测试方案配置", NavigateRegion = "BaseConfigView" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
+
         }
 
         /// <summary>
@@ -196,8 +206,13 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                 }
 
             },parm);
-            //弹出详情对话框
-         
+            //发布面包靴
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "基础设置", NavigateRegion = "BaseConfigView" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "测试方案配置", NavigateRegion = "BaseConfigView" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "编辑测试方案" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
+
         }
         /// <summary>
         /// 删除操作
@@ -250,16 +265,12 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private void AddPlan(string obj)
         {
             _regionManager.Regions["ContentRegion"].RequestNavigate("AddSchView");
-            //弹出详情对话框
-            //_dialog.ShowDialog("AddOrEditSchView", async callback =>
-            //{
-            //    if (callback.Result == ButtonResult.OK)
-            //    {
-            //        //更新表格,重新获取
-            //        GetContent();
-            //    }
-
-            //});
+            //发布面包靴
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "基础设置", NavigateRegion = "BaseConfigView" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "测试方案配置", NavigateRegion = "BaseConfigView" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "新增测试方案" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
         }
         /// <summary>
         /// excel导出

+ 14 - 2
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/DeviceKindViewModel.cs

@@ -1,11 +1,15 @@
 using AutoMapper;
 using BizService;
+using BlankApp1.Events;
 using Microsoft.Extensions.Logging;
 using MiniExcelLibs;
 using Model.Dto;
 using Model.Entities;
 using PLCTool.Common;
+using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
+using Prism.Events;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
 using System;
@@ -26,14 +30,17 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
+        private readonly IEventAggregator _aggregator;
         private List<BasDeviceKindDto> allDeviceKindList = new List<BasDeviceKindDto>();//所有方案
         private List<BasDeviceKindDto> conditionDeviceKind = new List<BasDeviceKindDto>();//符合条件的方案
-        public DeviceKindViewModel(IBasicDeviceKindService iBasicDeviceKindService, IMapper mapper, IDialogService dialog, ILogger logger)
+        private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
+        public DeviceKindViewModel(IBasicDeviceKindService iBasicDeviceKindService, IMapper mapper,  IEventAggregator aggregator, IDialogService dialog, ILogger logger)
         {
             _iBasicDeviceKindService = iBasicDeviceKindService;
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
+            _aggregator=aggregator;
             QueryCommand = new DelegateCommand<object>(Query);
             AddCommand = new DelegateCommand<object>(Add);
             ExportCommand = new DelegateCommand<string>(Export);
@@ -42,6 +49,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             ResetCommand = new DelegateCommand<object>(Reset);
             OnLoadCommand = new DelegateCommand(OnLoad);
             GetPprojectConfig();
+          
         }
 
 
@@ -61,7 +69,11 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             }
 
             DeviceKindName = "---";
-     
+            //发布面包靴
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "基础设置" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "设备类型管理" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
             // DeviceKindNameList= _iBasicDeviceKindService.FindAllDeviceKind();
         }
         private void Reset(object obj)

+ 13 - 2
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/DeviceViewModel.cs

@@ -5,7 +5,10 @@ using MiniExcelLibs;
 using Model.Dto;
 using Model.Entities;
 using PLCTool.Common;
+using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
+using Prism.Events;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
 using System;
@@ -27,9 +30,11 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
+        private readonly IEventAggregator _aggregator;
         private List<BasDeviceDto> allDeviceList = new List<BasDeviceDto>();//所有方案
         private List<BasDeviceDto> conditionDevices = new List<BasDeviceDto>();//符合条件的方案
-        public DeviceViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IMapper mapper, IDialogService dialog, ILogger logger)
+        private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
+        public DeviceViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IMapper mapper, IDialogService dialog, ILogger logger ,IEventAggregator aggregator)
         {
             _iBasicDeviceService = iBasicDeviceService;
             _iBasicDeviceKindService = iBasicDeviceKindService;
@@ -37,6 +42,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
+            _aggregator=aggregator;
             QueryCommand = new DelegateCommand<object>(Query);
             AddCommand = new DelegateCommand<object>(Add);
             ExportCommand = new DelegateCommand<string>(Export);
@@ -44,8 +50,8 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             DeleteCommand = new DelegateCommand<object>(Delete);
             ResetCommand = new DelegateCommand<object>(Reset);
             OnLoadCommand = new DelegateCommand(OnLoad);
-          
             GetPprojectConfig();
+          
         }
 
 
@@ -75,6 +81,11 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
 
             DeviceKindName = "---";
             ProjectName = "---";
+            //发布面包靴
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "基础设置" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "设备管理" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
         }
         private void Reset(object obj)
         {

+ 20 - 4
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/PLCConfigViewModel.cs

@@ -4,7 +4,10 @@ using Microsoft.Extensions.Logging;
 using MiniExcelLibs;
 using Model.Dto;
 using Model.Entities;
+using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
+using Prism.Events;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
 using System;
@@ -25,29 +28,41 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
+        private readonly IEventAggregator _aggregator;
         private List<BasPlcItemConfigDto> allPLCConfigList = new List<BasPlcItemConfigDto>();//所有方案
         private List<BasPlcItemConfigDto> conditionConfig = new List<BasPlcItemConfigDto>();//符合条件的方案
-        public PLCConfigViewModel(IBasicPlcItemConfigService iBasPlcItemConfigService, IMapper mapper,IDialogService dialog, ILogger logger)
+        private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
+        public PLCConfigViewModel(IBasicPlcItemConfigService iBasPlcItemConfigService, IMapper mapper,IDialogService dialog, ILogger logger,IEventAggregator aggregator)
         {
             _iBasPlcItemConfigService = iBasPlcItemConfigService;
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
+            _aggregator = aggregator;
             QueryCommand = new DelegateCommand<object>(Query);
             AddCommand= new DelegateCommand<object>(Add);
             ExportCommand = new DelegateCommand<string>(Export);
             EditCommand = new DelegateCommand<object>(Edit);
             DeleteCommand = new DelegateCommand<object>(Delete);
+            OnLoadCommand = new DelegateCommand(OnLoad);
             GetPLCConfig();
+         
         }
 
 
 
-
-
-
         #region 私有方法
         /// <summary>
+        /// 面包靴
+        /// </summary>
+        private void OnLoad()
+        {
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "基础设置" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "项目管理" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
+        }
+        /// <summary>
         /// 修改
         /// </summary>
         /// <param name="obj"></param>
@@ -258,6 +273,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         /// 表格编辑按钮
         /// </summary>
         public DelegateCommand<Object> EditCommand { set; get; }
+        public DelegateCommand OnLoadCommand { set; get; }
         #endregion
 
         #region 数据绑定

+ 21 - 32
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/ProjectViewModel.cs

@@ -5,8 +5,10 @@ using MiniExcelLibs;
 using Model.Dto;
 using Model.Entities;
 using PLCTool.Common;
+using PLCTool.Events;
 using PLCTool.Models;
 using Prism.Commands;
+using Prism.Events;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
 using System;
@@ -25,44 +27,42 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
+        private readonly IEventAggregator _aggregator;
         private List<BasProjectDto> allProjectList = new List<BasProjectDto>();//所有方案
         private List<BasProjectDto> conditionProject = new List<BasProjectDto>();//符合条件的方案
-        public ProjectViewModel(IBasicProjectService iBasicProjectService, IMapper mapper, IDialogService dialog, ILogger logger)
+        private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
+        public ProjectViewModel(IBasicProjectService iBasicProjectService, IMapper mapper, IEventAggregator aggregator, IDialogService dialog, ILogger logger)
         {
             _iBasicProjectService = iBasicProjectService;
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
+            _aggregator=aggregator;
             QueryCommand = new DelegateCommand<object>(Query);
             AddCommand = new DelegateCommand<object>(Add);
             ExportCommand = new DelegateCommand<string>(Export);
             EditCommand = new DelegateCommand<object>(Edit);
             DeleteCommand = new DelegateCommand<object>(Delete);
             ResetCommand = new DelegateCommand<object>(Reset);
-            BreadChangedCommand = new DelegateCommand<object>(BreadChangedC);
-            Path.Add(new CrumbViewModel { Name = "基础设置" });
-            Path.Add(new CrumbViewModel { Name = "项目管理" });
+            OnLoadCommand = new DelegateCommand(OnLoad);
 
             GetPprojectConfig();
-        }
-
-        private void BreadChangedC(object obj)
-        {
-            switch(SelectedCrumb.Name)
-            {
-                case "基础设置": break;
-                case "项目管理": break;
-
-            }
+            
         }
 
 
 
-
-
-
         #region 私有方法
-
+        /// <summary>
+        /// 面包靴
+        /// </summary>
+        private void OnLoad()
+        {
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "基础设置" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "项目管理" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
+        }
         private void Reset(object obj)
         {
             ProjectName = string.Empty;
@@ -306,24 +306,13 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         public DelegateCommand<Object> EditCommand { set; get; }
         public DelegateCommand<object> ResetCommand { set; get; }
         public DelegateCommand<object> BreadChangedCommand { set; get; }
-        
+        public DelegateCommand OnLoadCommand { set; get; }
         #endregion
 
         #region 数据绑定
 
-        private ObservableCollection<CrumbViewModel> _path=new ObservableCollection<CrumbViewModel>();
-        public ObservableCollection<CrumbViewModel> Path
-        {
-            get { return _path; }
-            set { SetProperty(ref _path, value); }
-        }
-        private CrumbViewModel selectedCrumb = new CrumbViewModel();
-        public CrumbViewModel SelectedCrumb
-        {
-            get { return selectedCrumb; }
-            set { SetProperty(ref selectedCrumb, value); }
-        }
-        
+
+
         /// <summary>
         /// 开始时间
         /// </summary>

+ 17 - 3
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/ProjectTestResultViewModel.cs

@@ -3,8 +3,11 @@ using BizService;
 using Microsoft.Extensions.Logging;
 using Model.Dto;
 using Model.Entities;
+using PLCTool.Events;
+using PLCTool.Models;
 using PLCTool.Views.BusinessManageView;
 using Prism.Commands;
+using Prism.Events;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
 using System;
@@ -25,26 +28,32 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
+        private readonly IEventAggregator _aggregator;
         private readonly IBizTestRecordService _iBizTestRecordService;
         private readonly IBasicPlcTestSchemeDtlService _iBasicPlcTestSchemeDtlService;
         private readonly IBizTestRecordDtlService _iBizTestRecordDtlService;
+     
         private ObservableCollection<DeviceResultCardView> allProjectResultPicList = new ObservableCollection<DeviceResultCardView>();
-        private int eachColumNum = 3; //每行展示卡片个数
-        public ProjectTestResultViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBizTestRecordService iBizTestRecordService, IBasicPlcTestSchemeDtlService iBasicPlcTestSchemeDtlService, IBizTestRecordDtlService iBizTestRecordDtlService,IMapper mapper, IDialogService dialog, ILogger logger)
+        private int eachColumNum = 4; //每行展示卡片个数
+        private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
+        public ProjectTestResultViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBizTestRecordService iBizTestRecordService, IBasicPlcTestSchemeDtlService iBasicPlcTestSchemeDtlService, IBizTestRecordDtlService iBizTestRecordDtlService,IMapper mapper, IDialogService dialog, ILogger logger, IEventAggregator aggregator, ObservableCollection<DeviceResultCardView> allProjectResultPicList)
         {
             _iBasicDeviceService = iBasicDeviceService;
             _iBasicDeviceKindService = iBasicDeviceKindService;
             _iBasicProjectService = iBasicProjectService;
             _basicPlcTestSchemeService = basicPlcTestSchemeService;
             _iBizTestRecordService = iBizTestRecordService;
-            _iBasicPlcTestSchemeDtlService= iBasicPlcTestSchemeDtlService;
+            _iBasicPlcTestSchemeDtlService = iBasicPlcTestSchemeDtlService;
             _iBizTestRecordDtlService = iBizTestRecordDtlService;
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
+            _aggregator = aggregator;
             OnLoadCommand = new DelegateCommand(OnLoad);
             QueryCommand = new DelegateCommand<object>(Query);
             ResetCommand = new DelegateCommand<object>(Reset);
+            _aggregator = aggregator;
+            this.allProjectResultPicList = allProjectResultPicList;
         }
         #region 私有方法
         private void Reset(object obj)
@@ -69,6 +78,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private void OnLoad()
         {
             GetProjectConfig();
+            //发布面包靴
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "业务员管理" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "测试记录查询",NavigateRegion="ProjectTestResultView" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
         }
 
         /// <summary>

+ 12 - 1
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/ProjectTestViewModel.cs

@@ -4,8 +4,11 @@ using Microsoft.Extensions.Logging;
 using Model;
 using Model.Dto;
 using Model.Entities;
+using PLCTool.Events;
+using PLCTool.Models;
 using PLCTool.Views.BusinessManageView;
 using Prism.Commands;
+using Prism.Events;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
 using System;
@@ -30,9 +33,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
+        private readonly IEventAggregator _aggregator;
         private ObservableCollection<DeviceTestCardView> allProjectePicList = new ObservableCollection<DeviceTestCardView>();
         private int eachColumNum = 4; //每行展示卡片个数
-        public ProjectTestViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IBizTestRecordService iBizTestRecordService, IMapper mapper, IDialogService dialog, ILogger logger)
+        private List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
+        public ProjectTestViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IBizTestRecordService iBizTestRecordService, IMapper mapper, IDialogService dialog, ILogger logger, IEventAggregator aggregator)
         {
             _iBasicDeviceService = iBasicDeviceService;
             _iBasicDeviceKindService = iBasicDeviceKindService;
@@ -41,6 +46,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
+            _aggregator=aggregator;
             OnLoadCommand = new DelegateCommand(OnLoad);
             QueryCommand = new DelegateCommand<object>(Query);
             ResetCommand = new DelegateCommand<object>(Reset);
@@ -68,6 +74,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private void OnLoad()
         {
             GetProjectConfig();
+            //发布面包靴
+            breadCrumbs.Clear();
+            breadCrumbs.Add(new CrumbViewModel { Name = "业务员管理" });
+            breadCrumbs.Add(new CrumbViewModel { Name = "测试操作", NavigateRegion = "ProjectTestView" });
+            _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
         }
 
         /// <summary>

+ 45 - 4
BlankApp1/BlankApp1/ViewModels/MainWindowViewModel.cs

@@ -1,11 +1,15 @@
 using AutoMapper;
 using BizService;
 using BlankApp1.Common;
+using BlankApp1.Events;
 using BlankApp1.Views;
 using Microsoft.Extensions.Logging;
 using Model.Dto;
 using PLCTool.Common;
+using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
+using Prism.Events;
 using Prism.Mvvm;
 using Prism.Regions;
 
@@ -32,7 +36,7 @@ namespace BlankApp1.ViewModels
             set { SetProperty(ref _title, value); }
         }
 
-        public MainWindowViewModel(IRegionManager regionManager,ILogger logger,IProductService productService, IMapper mapper)
+        public MainWindowViewModel(IRegionManager regionManager,ILogger logger, IEventAggregator aggregator, IProductService productService, IMapper mapper)
         {
             this._regionManager = regionManager;
             this._logger = logger;
@@ -41,14 +45,34 @@ namespace BlankApp1.ViewModels
             ButtonNavigateCommand = new DelegateCommand<string>(ButtonNavigate);
             BackCommand = new DelegateCommand(GoBack);
             NextCommand = new DelegateCommand(GoNext);
+            BreadChangedCommand = new DelegateCommand<object>(BreadChangedC);
             JudgePLC();
             logger.LogInformation("info");
             logger.LogError("error");
-            //_regionManager.Regions["MeunRegion"].RequestNavigate("TreeMenuView");
-
 
+            aggregator.GetEvent<BreadEvent>().Subscribe(RecvBreadMsg);
         }
 
+        private void RecvBreadMsg(List<CrumbViewModel> list)
+        {
+            Path.Clear();
+            foreach (var item in list)
+            {
+                Path.Add(item);
+            }
+        }
+        /// <summary>
+        /// 面包靴导航
+        /// </summary>
+        /// <param name="obj"></param>
+        private void BreadChangedC(object obj)
+        {
+            if(!string.IsNullOrEmpty(SelectedCrumb?.NavigateRegion))
+            {
+                _regionManager.Regions["ContentRegion"].RequestNavigate(SelectedCrumb.NavigateRegion);
+            }
+      
+        }
 
         private void GoNext()
         {
@@ -119,9 +143,26 @@ namespace BlankApp1.ViewModels
         public DelegateCommand<string> ButtonNavigateCommand { set; get; }
         public DelegateCommand NextCommand { set; get; }
         public DelegateCommand BackCommand { set; get; }
+
+        public DelegateCommand<object> BreadChangedCommand { set; get; }
+      
         #endregion
         #region 数据绑定
-
+            /// <summary>
+            /// 面包削
+            /// </summary>
+        private ObservableCollection<CrumbViewModel> _path = new ObservableCollection<CrumbViewModel>();
+        public ObservableCollection<CrumbViewModel> Path
+        {
+            get { return _path; }
+            set { SetProperty(ref _path, value); }
+        }
+        private CrumbViewModel selectedCrumb = new CrumbViewModel();
+        public CrumbViewModel SelectedCrumb
+        {
+            get { return selectedCrumb; }
+            set { SetProperty(ref selectedCrumb, value); }
+        }
 
         private bool plcIsConnect = false;
         public bool PLCIsConnect

+ 11 - 15
BlankApp1/BlankApp1/Views/BasicConfigView/ProjectView.xaml

@@ -12,25 +12,21 @@
              d:DesignHeight="450" d:DesignWidth="800">
 
     <Grid >
+        <b:Interaction.Triggers>
+            <b:EventTrigger EventName="Loaded">
+                <b:InvokeCommandAction Command="{Binding OnLoadCommand}"/>
+            </b:EventTrigger>
+        </b:Interaction.Triggers>
         <Grid.RowDefinitions>
-            <RowDefinition Height="30"/>
+    
             <RowDefinition Height="40"/>
             <RowDefinition Height="40"/>
             <RowDefinition/>
             <RowDefinition Height="40"/>
 
         </Grid.RowDefinitions>
-        <Grid Grid.Row="0" Background=" #F2F2F2">
-            <wpfdev:BreadCrumbBar ItemsSource="{Binding Path}" VerticalAlignment="Center"  DisplayMemberPath="Name" Margin="0,0"
-                                SelectedItem="{Binding SelectedCrumb, Mode=TwoWay}">
-                <b:Interaction.Triggers>
-                    <b:EventTrigger EventName="SelectionChanged">
-                        <b:InvokeCommandAction Command="{Binding BreadChangedCommand}"/>
-                    </b:EventTrigger>
-                </b:Interaction.Triggers>
-            </wpfdev:BreadCrumbBar>
-        </Grid>
-        <UniformGrid Grid.Row="1" Columns="3">
+   
+        <UniformGrid Grid.Row="0" Columns="3">
             <StackPanel Orientation="Horizontal">
                 <TextBlock Text="项目编号:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
                 <TextBox  Height="28" Width="120" Text="{Binding ProjectNo}" />
@@ -47,7 +43,7 @@
 
 
         </UniformGrid>
-        <Grid Grid.Row="2">
+        <Grid Grid.Row="1">
             <Grid.ColumnDefinitions>
                 <ColumnDefinition/>
                 <ColumnDefinition/>
@@ -71,7 +67,7 @@
                 <!--<Button Content="导出Excel" Width="80"  Margin="5,0"  Command="{Binding ExportCommand}" Style="{StaticResource NormalButtonStyle}" />-->
             </StackPanel>
         </Grid>
-        <DataGrid  Grid.Row="3"  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"
                  ItemsSource="{Binding ProjectItemList}" IsReadOnly="True" Padding="0"  >
             <DataGrid.Columns >
@@ -109,7 +105,7 @@
             </DataGrid.Columns>
 
         </DataGrid>
-        <Grid Grid.Row="4" HorizontalAlignment="Center" VerticalAlignment="Center">
+        <Grid Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center">
             <wpfdev:Pagination IsLite="False"    Margin="0"  Width="auto" Height="30" HorizontalAlignment="Center"  
                        Count="{Binding TotalCount,Mode=TwoWay}" 
                        CountPerPage="{Binding CountPerPage,Mode=TwoWay}"

+ 20 - 1
BlankApp1/BlankApp1/Views/MainWindow.xaml

@@ -3,6 +3,8 @@
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:prism="http://prismlibrary.com/"
         xmlns:convt="clr-namespace:PLCTool.Controls.Convert"
+          xmlns:wpfdev="https://github.com/WPFDevelopersOrg/WPFDevelopers"
+        xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
         Title="MainWindow" 
         prism:ViewModelLocator.AutoWireViewModel="True"
         Height="600"
@@ -125,7 +127,24 @@
             </StackPanel>
             <Border Grid.Column="1" BorderBrush="#CBCBCB" BorderThickness="1,0,0,0"></Border>
             <ContentControl Grid.Column="0" prism:RegionManager.RegionName="MenuRegion"  />
-            <ContentControl Grid.Column="1" prism:RegionManager.RegionName="ContentRegion" />
+            <Grid Grid.Column="1">
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="30"/>
+                    <RowDefinition/>
+                </Grid.RowDefinitions>
+                <Grid Grid.Row="0" Background=" #F2F2F2">
+                    <wpfdev:BreadCrumbBar ItemsSource="{Binding Path}" VerticalAlignment="Center"  DisplayMemberPath="Name" Margin="0,0"
+                        SelectedItem="{Binding SelectedCrumb, Mode=TwoWay}">
+                        <b:Interaction.Triggers>
+                            <b:EventTrigger EventName="SelectionChanged">
+                                <b:InvokeCommandAction Command="{Binding BreadChangedCommand}"/>
+                            </b:EventTrigger>
+                        </b:Interaction.Triggers>
+                    </wpfdev:BreadCrumbBar>
+                </Grid>
+                <ContentControl Grid.Row="1" prism:RegionManager.RegionName="ContentRegion" />
+            </Grid>
+   
 
         </Grid>