private void InitializeConsumerConfigurationPanel(ConsumerConfigViewModel consumerConfigViewModel, ConsumerTemplate consumer)
        {
            consumerConfigViewModel.Current = consumer;
            consumerConfigViewModel.ParamPanel.SetDescriptors(consumer?.Factory as IParameterPresentAdapter, AsGroup(consumer?.Factory.GetParameters(consumer.Clz)));

            InvalidateScrollInfo();
            IsLayoutDirty = IsLoaded;
        }
        private void AppendConsumerConfig(TemplateWithArgs <ConsumerTemplate> consumer = null)
        {
            var viewModel = new ConsumerConfigViewModel(GetConsumerList(_deviceType));

            viewModel.ComboBox.SelectionChanged += ConsumerComboBox_OnSelectionChanged;
            viewModel.ComboBox.FindAndSelectFirstByString(consumer?.Template.Identifier, 0);
            viewModel.ParamPanel.Context        = consumer?.Args ?? EmptyContext.Instance;
            viewModel.ParamPanel.LayoutChanged += ConfigurationPanel_OnLayoutChanged;
            _consumerViewModels.AddLast(viewModel);
            ConsumersStackPanel.Children.Add(viewModel.Container);
            if (_consumerViewModels.Count >= MaxConsumerCount)
            {
                AppendConsumerButton.IsEnabled = false;
                AppendConsumerButton.Content   = "MAX";
            }
        }