using Cognex.VisionPro; using Prism.Commands; using Prism.Events; using Prism.Ioc; using Prism.Mvvm; using Prism.Regions; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using TeamAAS_VP.Core; using TeamAAS_VP.Events; using TeamAAS_VP.Models; using TeamAAS_VP.Resources.Languages; namespace TeamAAS_VP.ViewModels.Home { public class ShowVisionRenderViewModel : BindableBase { #region 字段 IRegionManager _regionManager; public IEventAggregator _eventAggregator; IContainerProvider _container; IDialogService _dialogService; #endregion #region 属性 private ObservableCollection _Renders; /// /// 显示界面 /// public ObservableCollection Renders { get { return _Renders; } set { SetProperty(ref _Renders,value); UpDateRenderLayout(); } } private Management _management; public Management management { get { return _management; } set { SetProperty(ref _management, value); } } #endregion #region 命令 public DelegateCommand LoadedCommand { get; set; } #endregion #region 事件 public event Action> UpdateLayout; #endregion public ShowVisionRenderViewModel(IRegionManager regionManager, IEventAggregator ea, IContainerProvider container, IDialogService dialogService) { _regionManager = regionManager; _eventAggregator = ea; _container = container; _dialogService = dialogService; management = _container.Resolve(); Renders= management.Renders; LoadedCommand = new DelegateCommand(OnLoad); } #region 方法 public void UpDateRenderLayout() { if (_Renders == null) { return; } UpdateLayout?.Invoke(_Renders); } public void ShowImage(CogRecordDisplay cogDisp) { IDialogParameters parameters = new DialogParameters(); parameters.Add("Cog", cogDisp); _dialogService.ShowDialog("ImagePreviewWindow", parameters, rst => { //对话框关闭之后的回调函数,可以在这解析结果。 //ButtonResult result1 = rst.Result; //if (result1 == ButtonResult.OK) //{ _eventAggregator.GetEvent().Publish(new MessageParameter() { Msg = Lang.完成, Duration = 1 }); //} }); } private void OnLoad() { //UpDateRenderLayout(); } #endregion } }