public AttributeEditor()
        {
            InitializeComponent();

            // Setup ViewModel
            _vm = new AttributeEditorViewModel(new TestableMetadataHelper());

            _vm.OnRequestConnection += (sender, args) =>
            {
                var arg = new RequestConnectionEventArgs {
                    ActionName = "Load", Control = this
                };
                RaiseRequestConnectionEvent(arg);
            };
            _vm.OnEntitiesListChanged += (sender, args) =>
            {
                cmbEntities.Items.Clear();
                cmbEntities.DisplayMember = "DisplayName";
                cmbEntities.ValueMember   = "SchemaName";
                cmbEntities.Items.AddRange(_vm.Entities.ToArray());
            };
            _vm.OnWorkingStateChanged += (sender, args) =>
            {
                ManageWorkingState(_vm.WorkingState);
            };
            _vm.OnGetInformationPanel += (sender, args) =>
            {
                args.Panel = InformationPanel.GetInformationPanel(this, args.Message, args.Width, args.Height);
            };
            _vm.OnShowMessageBox += (sender, args) =>
            {
                MessageBox.Show(this, args.Message, args.Caption, args.Buttons, args.Icon);
            };
        }