protected override void SetModel(object value)
        {
            if (value is ISubJournalParameter)
            {
                foreach (int bitNum in (value as ISubJournalParameter).BitNumbersInWord)
                {
                    ISharedBitViewModel sharedBit = this.BitNumbersInWord.First(model => model.NumberOfBit == bitNum);
                    if (sharedBit.Value)
                    {
                        sharedBit.Refresh();
                    }

                    this.BitNumbersInWord.First((viewModel => viewModel.NumberOfBit == bitNum)).ChangeValueByOwnerCommand?.Execute(this);
                }
            }
            base.SetModel(value);
        }
 public ComplexPropertyEditorViewModel(ITypesContainer container, IRangeViewModel rangeViewModel,
                                       ILocalizerService localizerService, IApplicationGlobalCommands applicationGlobalCommands,
                                       Func <ISharedBitViewModel> sharedBitViewModelGettingFunc) : base(container, rangeViewModel, localizerService)
 {
     _applicationGlobalCommands     = applicationGlobalCommands;
     _sharedBitViewModelGettingFunc = sharedBitViewModelGettingFunc;
     SubPropertyEditorViewModels    = new ObservableCollection <ISubPropertyEditorViewModel>();
     SubmitCommand = new RelayCommand <object>(OnSubmit);
     CancelCommand = new RelayCommand <object>(OnCancel);
     MainBitNumbersInWordCollection = new ObservableCollection <ISharedBitViewModel>();
     for (int i = 15; i >= 0; i--)
     {
         ISharedBitViewModel sharedBitViewModel = sharedBitViewModelGettingFunc();
         sharedBitViewModel.NumberOfBit = i;
         MainBitNumbersInWordCollection.Add(sharedBitViewModel);
     }
 }
 public ComplexJournalParameterEditorViewModel(IComplexJournalParameter journalParameter,
                                               IJournalParametersEditorViewModelFactory journalParametersEditorViewModelFactory,
                                               IApplicationGlobalCommands applicationGlobalCommands, Func <ISharedBitViewModel> sharedBitViewModelGettingFunc) : base(journalParameter)
 {
     this._journalParametersEditorViewModelFactory = journalParametersEditorViewModelFactory;
     this._applicationGlobalCommands          = applicationGlobalCommands;
     this.SubJournalParameterEditorViewModels = new ObservableCollection <ISubJournalParameterEditorViewModel>();
     this.AddSubParameterCommand         = new RelayCommand(this.OnAddSubParameterExecute);
     this.SubmitCommand                  = new RelayCommand <object>(this.OnSubmit);
     this.CancelCommand                  = new RelayCommand <object>(this.OnCancel);
     this.DeleteParameterCommand         = new RelayCommand(this.OnDeleteParameterExecute, this.CanExecuteDeleteParameter);
     this.MainBitNumbersInWordCollection = new ObservableCollection <ISharedBitViewModel>();
     for (int i = 0; i < 16; i++)
     {
         ISharedBitViewModel sharedBitViewModel = sharedBitViewModelGettingFunc();
         sharedBitViewModel.NumberOfBit = i;
         this.MainBitNumbersInWordCollection.Add(sharedBitViewModel);
     }
 }