using Prism.Mvvm; // 引入 Prism 的 BindableBase using System; using System.Collections.ObjectModel; using System.Linq; namespace UIShare.UIViewModel { public class ProgramVM : BindableBase { #region 构造函数 public ProgramVM() { // 可以进行初始化操作 } public ProgramVM(ProgramVM source) { ID = source.ID; StepCollection = new ObservableCollection(source.StepCollection.Select(p => new StepVM(p))); ErrorStepCollection = new ObservableCollection(source.ErrorStepCollection.Select(p => new StepVM(p))); Parameters = new ObservableCollection(source.Parameters.Select(p => new ParameterVM(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); } } }