private void btnAddSite_Click(object sender, EventArgs e) { CreateEditSite frm = new CreateEditSite(); frm.Text = "Create new Site"; SiteSettings site = new SiteSettings(); site.Name = "New"; site.UtilName = "GenericSite"; site.IsEnabled = true; frm.SiteSettingsBindingSource.DataSource = site; if (frm.ShowDialog() == DialogResult.OK) { bindingSourceSiteSettings.Position = bindingSourceSiteSettings.Add(site); } }
private void btnEditSite_Click(object sender, EventArgs e) { SiteSettings siteSettings = (SiteSettings)bindingSourceSiteSettings.Current; // use a copy of the original settings so anything that is changed can be canceled SerializableSettings s = new SerializableSettings() { Sites = new BindingList<SiteSettings>() }; s.Sites.Add(siteSettings); System.IO.MemoryStream ms = new System.IO.MemoryStream(); s.Serialize(ms); ms.Position = 0; SiteSettings copiedSiteSettings = SerializableSettings.Deserialize(new StreamReader(ms))[0]; CreateEditSite frm = new CreateEditSite(); frm.Text = "Edit " + siteSettings.Name; frm.SiteSettingsBindingSource.DataSource = copiedSiteSettings; if (frm.ShowDialog() == DialogResult.OK) { // make sure the configuration is clean and for the cosen util copiedSiteSettings.AddConfigurationValues(frm.SiteUtil); // replace original settings object with the new one int index = bindingSourceSiteSettings.IndexOf(siteSettings); bindingSourceSiteSettings.RemoveCurrent(); bindingSourceSiteSettings.Insert(index, copiedSiteSettings); bindingSourceSiteSettings.Position = index; } }