AppData.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using GeekDesk.Constant;
  2. using GeekDesk.Util;
  3. using System;
  4. using System.Collections.ObjectModel;
  5. using System.ComponentModel;
  6. /// <summary>
  7. /// 程序数据
  8. /// </summary>
  9. namespace GeekDesk.ViewModel
  10. {
  11. [Serializable]
  12. public class AppData : INotifyPropertyChanged
  13. {
  14. private ObservableCollection<MenuInfo> menuList; //菜单信息及菜单对应icon信息
  15. private AppConfig appConfig = new AppConfig(); //程序设置信息
  16. private ObservableCollection<ToDoInfo> hiToDoList; //历史待办
  17. private ObservableCollection<ToDoInfo> toDoList; //未处理待办 为了提高任务效率 分开处理
  18. public ObservableCollection<ToDoInfo> HiToDoList
  19. {
  20. get
  21. {
  22. if (hiToDoList == null)
  23. {
  24. hiToDoList = new ObservableCollection<ToDoInfo>();
  25. }
  26. return hiToDoList;
  27. }
  28. set
  29. {
  30. hiToDoList = value;
  31. OnPropertyChanged("HiToDoList");
  32. }
  33. }
  34. public ObservableCollection<ToDoInfo> ToDoList
  35. {
  36. get
  37. {
  38. if (toDoList == null)
  39. {
  40. toDoList = new ObservableCollection<ToDoInfo>();
  41. }
  42. return toDoList;
  43. }
  44. set
  45. {
  46. toDoList = value;
  47. OnPropertyChanged("ToDoList");
  48. }
  49. }
  50. public ObservableCollection<MenuInfo> MenuList
  51. {
  52. get
  53. {
  54. if (menuList == null)
  55. {
  56. menuList = new ObservableCollection<MenuInfo>();
  57. }
  58. return menuList;
  59. }
  60. set
  61. {
  62. menuList = value;
  63. OnPropertyChanged("MenuList");
  64. }
  65. }
  66. public AppConfig AppConfig
  67. {
  68. get
  69. {
  70. return appConfig;
  71. }
  72. set
  73. {
  74. appConfig = value;
  75. OnPropertyChanged("AppConfig");
  76. }
  77. }
  78. [field: NonSerializedAttribute()]
  79. public event PropertyChangedEventHandler PropertyChanged;
  80. private void OnPropertyChanged(string propertyName)
  81. {
  82. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  83. CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
  84. }
  85. }
  86. }