protected TemplatedInjectionMemberCommandContainerBase(CommandAttribute commandAttribute, ElementCollectionViewModel collection, DefaultCollectionElementAddCommand defaultAddCommand, IUIServiceWpf uiService)
            : base(commandAttribute, uiService)
        {
            this.collection      = collection as InjectionMemberCollectionViewModel;
            this.registerElement = collection.ParentElement as RegisterElementViewModel;

            this.defaultAddCommand = defaultAddCommand;

            this.registerElementRegistrationTypeChangedHandler = new EventHandler <EventArgs>(registerElement_RegistrationTypeChanged);
            this.registerElement.RegistrationTypeChanged      += registerElementRegistrationTypeChangedHandler;
        }
        protected override void Arrange()
        {
            RegistrationTypeChanged = false;

            base.Arrange();

            ElementCollectionViewModel registrationsCollection = (ElementCollectionViewModel)base.ContainerElement.ChildElement("Registrations");

            RegistrationElement = (RegisterElementViewModel)registrationsCollection.AddNewCollectionElement(typeof(RegisterElement));

            RegistrationElement.RegistrationTypeChanged
                += (sender, args) => RegistrationTypeChanged = true;

            RegistrationElement.Initialize(new InitializeContext());
        }