You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 rivejä
2.1 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. private void Navigation(MenusInfo info)
  45. {
  46. _regionManager.Regions["ModbusRegion"].RequestNavigate(info.ViewName);
  47. }
  48. /// <summary>
  49. /// 初始化左下拉框
  50. /// </summary>
  51. private void CreateLeftMenus()
  52. {
  53. LeftMenusList = new();
  54. LeftMenusList.Add(new MenusInfo() { Icon = "AllInclusive", MenuName = "线圈操作", ViewName = "CoilUC" });
  55. LeftMenusList.Add(new MenusInfo() { Icon = "BlurCircular", MenuName = "寄存器操作", ViewName = "RegisterUC" });
  56. LeftMenusList.Add(new MenusInfo() { Icon = "Settings", MenuName = "串口设置", ViewName = "SettingsUC" });
  57. }
  58. public void DefultNaigation()
  59. {
  60. _regionManager.Regions["ModbusRegion"].RequestNavigate("SettingsUC");
  61. }
  62. }
  63. }