using Prism.Mvvm; // 引入 Prism 的 BindableBase using System; using System.Collections.ObjectModel; using System.Linq; namespace UIShare.UIViewModel { public class ProgramModel : BindableBase { #region 构造函数 public ProgramModel() { // 可以进行初始化操作 } public ProgramModel(ProgramModel source) { ID = source.ID; StepCollection = new ObservableCollection(source.StepCollection.Select(p => new StepModel(p))); ErrorStepCollection = new ObservableCollection(source.ErrorStepCollection.Select(p => new StepModel(p))); Parameters = new ObservableCollection(source.Parameters.Select(p => new ParameterModel(p))); } #endregion public Guid ID { get; set; } = Guid.NewGuid(); private ObservableCollection _stepCollection = new ObservableCollection(); public ObservableCollection StepCollection { get => _stepCollection; set => SetProperty(ref _stepCollection, value); } private ObservableCollection _errorStepCollection = new ObservableCollection(); public ObservableCollection ErrorStepCollection { get => _errorStepCollection; set => SetProperty(ref _errorStepCollection, value); } private ObservableCollection _parameters = new ObservableCollection(); public ObservableCollection Parameters { get => _parameters; set => SetProperty(ref _parameters, value); } } }