Beispiel #1
0
        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;
                }
            }
        }
Beispiel #2
0
        private void SavePanelStateAndClose()
        {
            if (bindingPanel != null)
            {
                BindingBase binding = bindingPanel.Save();
                if (binding != null)
                {
                    activeBindings[bindingPanel.Property] = binding;
                }

                bindingPanel.Dispose();
                bindingPanel = null;
            }
        }
Beispiel #3
0
        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;
            }
        }