Пример #1
0
        IFormatterParametersViewModel IFormatterViewModelFactory.CreateFormatterViewModel(
            IUshortsFormatter ushortsFormatter)
        {
            if (ushortsFormatter == null)
            {
                return(null);
            }
            var formatterViewModel           = ushortsFormatter.Accept(this);
            var formatterParametersViewModel = new FormatterParametersViewModel()
            {
                Name = ushortsFormatter.Name,
                IsFromSharedResources            = ushortsFormatter.Name != null,
                RelatedUshortsFormatterViewModel = formatterViewModel
            };

            return(formatterParametersViewModel);
        }
        public override object Clone()
        {
            var cloneEditorViewModel = new ComplexPropertyEditorViewModel(_container,
                                                                          _rangeViewModel.Clone() as IRangeViewModel, _localizerService, _applicationGlobalCommands, _sharedBitViewModelGettingFunc)
            {
                Address = Address,
                IsMeasureUnitEnabled         = IsMeasureUnitEnabled,
                NumberOfPoints               = NumberOfPoints,
                IsRangeEnabled               = IsRangeEnabled,
                FormatterParametersViewModel = FormatterParametersViewModel?.Clone() as IFormatterParametersViewModel,
                Header            = Header,
                Name              = Name,
                MeasureUnit       = MeasureUnit,
                IsGroupedProperty = IsGroupedProperty
            };

            foreach (var subPropertyEditorViewModel in SubPropertyEditorViewModels)
            {
                var subPropertyEditorViewModelClone = subPropertyEditorViewModel.Clone() as ISubPropertyEditorViewModel;
                subPropertyEditorViewModelClone.BitNumbersInWord = cloneEditorViewModel.MainBitNumbersInWordCollection;
                foreach (var bitViewModel in subPropertyEditorViewModel.BitNumbersInWord)
                {
                    if (bitViewModel.Owner == subPropertyEditorViewModel && bitViewModel.Value)
                    {
                        subPropertyEditorViewModelClone.BitNumbersInWord.First(model => model.NumberOfBit == bitViewModel.NumberOfBit).ChangeValueByOwnerCommand.Execute(subPropertyEditorViewModelClone);
                    }
                }

                subPropertyEditorViewModelClone.Parent = cloneEditorViewModel;
                cloneEditorViewModel.SubPropertyEditorViewModels.Add(subPropertyEditorViewModelClone);
                cloneEditorViewModel.ChildStructItemViewModels.Add(subPropertyEditorViewModelClone);
                cloneEditorViewModel.IsCheckable = true;
            }

            return(cloneEditorViewModel);
        }