void ShowBindingPanel() { SavePanelStateAndClose(); if (propertyList.SelectedIndex >= 0) { System.Windows.Data.BindingBase binding = GetExistingBinding(propertyList.SelectedItem as PropertyWrapper); if (binding != null) { PropertyInfo propInfo = propertyList.SelectedItem as PropertyInfo; List <BaseBindingPanelFactory> panels = GetAvailableBindingPanels(); foreach (BaseBindingPanelFactory panel in panels) { if (panel.CanWorkWithBinding(binding)) { bindingPanel = panel.CreateInstance(); break; } } if (bindingPanel != null) { bindingPanel.Initialize(element, propertyList.SelectedItem as PropertyWrapper, binding); bindingPanel.Parent = panel1; bindingPanel.Dock = DockStyle.Fill; enableInDesignerCheckbox.Checked = bindingPanel.EnableInDesigner; } CreateAssociationButton.Enabled = false; bindingTypes.Enabled = false; } } }
private void SavePanelStateAndClose() { if (bindingPanel != null) { BindingBase binding = bindingPanel.Save(); if (binding != null) { activeBindings[bindingPanel.Property] = binding; } bindingPanel.Dispose(); bindingPanel = null; } }
private void CreateAssociationButton_Click(object sender, EventArgs e) { SavePanelStateAndClose(); if (propertyList.SelectedIndex >= 0 && bindingTypes.SelectedIndex >= 0) { BaseBindingPanelFactory factory = (BaseBindingPanelFactory)bindingTypes.SelectedItem; bindingPanel = factory.CreateInstance(); bindingPanel.Initialize(element, propertyList.SelectedItem as PropertyWrapper, null); bindingPanel.Parent = panel1; bindingPanel.Dock = DockStyle.Fill; CreateAssociationButton.Enabled = false; bindingTypes.Enabled = false; } }