private void ExternalChannelsForm_Load(object sender, EventArgs e) { _externalEntries = new ExternalChannelEntryCollection <ExternalChannelEntry <string, Uri> >(); XmlReader reader; // read in settings if (File.Exists(_channelsFileName)) { reader = XmlReader.Create(_channelsFileName); _externalEntries.ReadXml(reader); ChannelCountLabel.Text = string.Format(P.Resources.ChannelsAvailableNumber, _externalEntries.Count.ToString()); Parallel.ForEach(_externalEntries, entry => // foreach (KeyValuePair<string, Uri> entry in _externalEntries) { var control = new ExternalChannelPickerControl(entry.Key, entry.Value) { Name = entry.Key }; WirePickerEvents(control); ExternalChannelPickerPanel.Controls.Add(control); }); } var picker = new ExternalChannelPickerControl(); WirePickerEvents(picker); ExternalChannelPickerPanel.Controls.Add(picker); }
private void ChannelPicker_ChannelAdded(object sender, EventArgs e) { // add new instance of the control and assign event handler recursively var newPicker = new ExternalChannelPickerControl(); WirePickerEvents(newPicker); ExternalChannelPickerPanel.Controls.Add(newPicker); }
private void WirePickerEvents(ExternalChannelPickerControl control) { control.ChannelSaved += ChannelPicker_ChannelAdded; control.ChannelRemoved += ChannelPicker_ChannelRemoved; }