TreeNodeViewModel.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System.Collections.ObjectModel;
  2. using Microsoft.Practices.Prism.ViewModel;
  3. namespace BehaviorTree
  4. {
  5. public class TreeNodeViewModel : NotificationObject
  6. {
  7. private TreeNode treeNode;
  8. private TreeNodeViewModel parent;
  9. private ObservableCollection<TreeNodeViewModel> children = new ObservableCollection<TreeNodeViewModel>();
  10. public TreeNodeViewModel(TreeNode treeNode, TreeNodeViewModel parent)
  11. {
  12. this.treeNode = treeNode;
  13. this.parent = parent ?? this;
  14. }
  15. public double X
  16. {
  17. get
  18. {
  19. return treeNode.X;
  20. }
  21. set
  22. {
  23. if (treeNode.X == value)
  24. {
  25. return;
  26. }
  27. treeNode.X = value;
  28. RaisePropertyChanged("X");
  29. }
  30. }
  31. public double Y
  32. {
  33. get
  34. {
  35. return treeNode.Y;
  36. }
  37. set
  38. {
  39. if (treeNode.Y == value)
  40. {
  41. return;
  42. }
  43. treeNode.Y = value;
  44. RaisePropertyChanged("Y");
  45. }
  46. }
  47. public int Type
  48. {
  49. get
  50. {
  51. return treeNode.Type;
  52. }
  53. set
  54. {
  55. if (treeNode.Type == value)
  56. {
  57. return;
  58. }
  59. treeNode.Type = value;
  60. RaisePropertyChanged("Type");
  61. }
  62. }
  63. public TreeNodeViewModel Parent
  64. {
  65. get
  66. {
  67. return parent;
  68. }
  69. set
  70. {
  71. parent = value;
  72. }
  73. }
  74. public ObservableCollection<TreeNodeViewModel> Children
  75. {
  76. get
  77. {
  78. return children;
  79. }
  80. set
  81. {
  82. children = value;
  83. }
  84. }
  85. }
  86. }