25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.4 KiB

  1. using ModbusDemo.Model;
  2. using Prism.Commands;
  3. using Prism.Mvvm;
  4. using Prism.Regions;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace ModbusDemo.VIewModel
  11. {
  12. /// <summary>
  13. /// 这个是MainWindow的ViewModel,用来支持数据绑定
  14. /// </summary>
  15. public class MainWindowViewModel : BindableBase
  16. {
  17. //控制页面跳转
  18. private readonly IRegionManager _regionManager;
  19. //定义页面跳转命令
  20. public DelegateCommand<MenusInfo> NavigationCmm { get; set; }
  21. //定义跳转的列表
  22. private List<MenusInfo> _leftMenusList;
  23. public List<MenusInfo> LeftMenusList
  24. {
  25. get { return _leftMenusList; }
  26. set { _leftMenusList = value; }
  27. }
  28. /// <summary>
  29. /// 空参构造,用于xaml的设计时展示
  30. /// </summary>
  31. public MainWindowViewModel()
  32. {
  33. }
  34. /// <summary>
  35. ///
  36. /// </summary>
  37. /// <param name="regionManager"></param>
  38. public MainWindowViewModel(IRegionManager regionManager)
  39. {
  40. CreateLeftMenus();
  41. _regionManager = regionManager;
  42. NavigationCmm = new DelegateCommand<MenusInfo>(Navigation);
  43. }
  44. /// <summary>
  45. /// 视图导航
  46. /// </summary>
  47. /// <param name="info"></param>
  48. private void Navigation(MenusInfo info)
  49. {
  50. if(info != null)
  51. {
  52. _regionManager.Regions["ModbusRegion"].RequestNavigate(info.ViewName);
  53. }
  54. }
  55. /// <summary>
  56. /// 初始化左下拉框
  57. /// </summary>
  58. private void CreateLeftMenus()
  59. {
  60. LeftMenusList = new();
  61. LeftMenusList.Add(new MenusInfo() { Icon = "AllInclusive", MenuName = "线圈操作", ViewName = "CoilUC" });
  62. LeftMenusList.Add(new MenusInfo() { Icon = "BlurCircular", MenuName = "寄存器操作", ViewName = "RegisterUC" });
  63. LeftMenusList.Add(new MenusInfo() { Icon = "Settings", MenuName = "串口设置", ViewName = "SettingsUC" });
  64. LeftMenusList.Add(new MenusInfo() { Icon = "Settings", MenuName = "附加功能", ViewName = "AttachUC" });
  65. }
  66. public void DefultNaigation()
  67. {
  68. _regionManager.Regions["ModbusRegion"].RequestNavigate("SettingsUC");
  69. }
  70. }
  71. }