Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        /// <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);
        }