/// <summary> /// Обрабатывает добавление новых устройств для этой группа устройств /// </summary> /// <typeparam name="T">Тип добавляемых устройств</typeparam> private void AddDeviceDetail <T>() where T : DeviceDetail { // вначале создать устройство DeviceDetail device = unitOfWork.CreateObject <T>(); unitOfWork.AddParameterDetail(Model, device); // затем сконструировать модель просмотра DeviceDetaillViewModel vm = DeviceDetaillViewModel.BuildViewModel(device); DeviceDetaills.Add(vm); CurrentDeviceDetail = vm; }
/// <summary> /// Инициализирует новый экземпляр класса PartViewModel. /// </summary> /// <param name="part">Базовая группа устройств, на котором должна быть основана эта модель ViewModel</param> /// <param name="unitOfWork">UnitOfWork для управления изменениями</param> public PartViewModel(Part part, IUnitOfWork unitOfWork) : base(part) { if (part == null) { throw new ArgumentNullException(nameof(part)); } this.unitOfWork = unitOfWork; // Построение структур данных для параметров DeviceDetaills = new ObservableCollection <DeviceDetaillViewModel>(); foreach (DeviceDetail device in part.DeviceDetails) { DeviceDetaillViewModel vm = DeviceDetaillViewModel.BuildViewModel(device); if (vm != null) { DeviceDetaills.Add(vm); } } AddDeviceDetailCommand = new DelegateCommand(o => AddDeviceDetail <DeviceBRS1M>()); DeleteDeviceDetailCommand = new DelegateCommand(o => DeleteCurrentDeviceDetail(), o => CurrentDeviceDetail != null); }