private void createFeedGroup() { FilteredFeedFormControlComposer feedGroupComposer = new FilteredFeedFormControlComposer(); IFilteredFeedFormControlBuilder feedGroupBuilder = new FeedGroupBuilder(); feedGroupComposer.Build(feedGroupBuilder, this); FeedGroup feedGroup = feedGroupBuilder.Control as FeedGroup; //giving a reference to a method, by a lambda expression, also ivoked by the notifyer attachButton on click: this.AttachButtons[feedGroup.m_Number - 1].m_AttachButtonDelegates += (() => this.FeedGroups[feedGroup.m_Number - 1].ButtonBuildFeedFeedGroup.Enabled = true); feedGroup.Dock = DockStyle.Right; this.FeedGroups.Add(feedGroup); this.groupBoxFeedGroups.Controls.Add(feedGroup); }
private void createAttachButton() { FilteredFeedFormControlComposer attachButtonComposer = new FilteredFeedFormControlComposer(); IFilteredFeedFormControlBuilder attachButtonBuilder = new AttachButtonBuilder(); attachButtonComposer.Build(attachButtonBuilder, this); AttachButton attachButton = attachButtonBuilder.Control as AttachButton; //the form registers as an observer of attachButton by giving a reference to a method: attachButton.m_AttachButtonDelegates += this.diasableAttachButtons; attachButton.Dock = DockStyle.Right; this.AttachButtons.Add(attachButton); this.groupBoxAttachButtons.Controls.Add(attachButton); }