ShowVisionRenderViewModel.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using Cognex.VisionPro;
  2. using Prism.Commands;
  3. using Prism.Events;
  4. using Prism.Ioc;
  5. using Prism.Mvvm;
  6. using Prism.Regions;
  7. using Prism.Services.Dialogs;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Collections.ObjectModel;
  11. using System.Linq;
  12. using TeamAAS_VP.Core;
  13. using TeamAAS_VP.Events;
  14. using TeamAAS_VP.Models;
  15. using TeamAAS_VP.Resources.Languages;
  16. namespace TeamAAS_VP.ViewModels.Home
  17. {
  18. public class ShowVisionRenderViewModel : BindableBase
  19. {
  20. #region 字段
  21. IRegionManager _regionManager;
  22. public IEventAggregator _eventAggregator;
  23. IContainerProvider _container;
  24. IDialogService _dialogService;
  25. #endregion
  26. #region 属性
  27. private ObservableCollection<ShowRender> _Renders;
  28. /// <summary>
  29. /// 显示界面
  30. /// </summary>
  31. public ObservableCollection<ShowRender> Renders
  32. {
  33. get { return _Renders; }
  34. set { SetProperty(ref _Renders, value); UpDateRenderLayout(); }
  35. }
  36. private Management _management;
  37. public Management management
  38. {
  39. get { return _management; }
  40. set { SetProperty(ref _management, value); }
  41. }
  42. #endregion
  43. #region 命令
  44. public DelegateCommand LoadedCommand { get; set; }
  45. #endregion
  46. #region 事件
  47. public event Action<ObservableCollection<ShowRender>> UpdateLayout;
  48. #endregion
  49. public ShowVisionRenderViewModel(IRegionManager regionManager, IEventAggregator ea, IContainerProvider container, IDialogService dialogService)
  50. {
  51. _regionManager = regionManager;
  52. _eventAggregator = ea;
  53. _container = container;
  54. _dialogService = dialogService;
  55. management = _container.Resolve<Management>();
  56. Renders = management.Renders;
  57. LoadedCommand = new DelegateCommand(OnLoad);
  58. }
  59. #region 方法
  60. public void UpDateRenderLayout()
  61. {
  62. if (_Renders == null) { return; }
  63. UpdateLayout?.Invoke(_Renders);
  64. }
  65. public void ShowImage(CogRecordDisplay cogDisp)
  66. {
  67. IDialogParameters parameters = new DialogParameters();
  68. parameters.Add("Cog", cogDisp);
  69. _dialogService.ShowDialog("ImagePreviewWindow", parameters, rst =>
  70. {
  71. //对话框关闭之后的回调函数,可以在这解析结果。
  72. //ButtonResult result1 = rst.Result;
  73. //if (result1 == ButtonResult.OK)
  74. //{
  75. _eventAggregator.GetEvent<SnackbarMessageNotification>().Publish(new MessageParameter() { Msg = Lang.完成, Duration = 1 });
  76. //}
  77. });
  78. }
  79. private void OnLoad()
  80. {
  81. //UpDateRenderLayout();
  82. }
  83. #endregion
  84. }
  85. }