public MetadataFilterItemControl()
        {
            InitializeComponent();

            var filter = new MetadataFilter();

            _filterItem = new MetadataFilterItem(filter);

            TextBoxServer.TextChanged += TextBoxServer_TextChanged;

            ComboBoxDatabase.AddHandler(TextBoxBase.TextChangedEvent,
                                        new TextChangedEventHandler(ComboBoxDatabase_TextChanged));
            ComboBoxSchema.AddHandler(TextBoxBase.TextChangedEvent,
                                      new TextChangedEventHandler(ComboBoxSchema_TextChanged));

            TextBoxPackage.TextChanged    += TextBoxPackage_TextChanged;
            TextBoxObjectName.TextChanged += TextBlockObjectName_TextChanged;

            CheckBoxUserObject.Checked   += CheckBoxUserObject_CheckedChanged;
            CheckBoxUserObject.Unchecked += CheckBoxUserObject_CheckedChanged;

            CheckBoxSystemObject.Checked   += CheckBoxSystemObject_CheckedChanged;
            CheckBoxSystemObject.Unchecked += CheckBoxSystemObject_CheckedChanged;

            CheckBoxTable.Checked   += CheckBoxTable_CheckedChanged;
            CheckBoxTable.Unchecked += CheckBoxTable_CheckedChanged;

            CheckBoxView.Checked   += CheckBoxView_CheckedChanged;
            CheckBoxView.Unchecked += CheckBoxView_CheckedChanged;

            CheckBoxProcedure.Checked   += CheckBoxProcedure_CheckedChanged;
            CheckBoxProcedure.Unchecked += CheckBoxProcedure_CheckedChanged;

            CheckBoxSynonym.Checked   += CheckBoxSynonym_CheckedChanged;
            CheckBoxSynonym.Unchecked += CheckBoxSynonym_CheckedChanged;

            TextBoxField.TextChanged += TextBoxField_TextChanged;

            BindLocalization();
        }
        private void UpdateControls()
        {
            TextBoxServer.TextChanged -= TextBoxServer_TextChanged;

            ComboBoxDatabase.RemoveHandler(TextBoxBase.TextChangedEvent,
                                           new TextChangedEventHandler(ComboBoxDatabase_TextChanged));
            ComboBoxSchema.RemoveHandler(TextBoxBase.TextChangedEvent,
                                         new TextChangedEventHandler(ComboBoxSchema_TextChanged));

            TextBoxPackage.TextChanged    -= TextBoxPackage_TextChanged;
            TextBoxObjectName.TextChanged -= TextBlockObjectName_TextChanged;

            CheckBoxTable.Checked   -= CheckBoxTable_CheckedChanged;
            CheckBoxTable.Unchecked -= CheckBoxTable_CheckedChanged;

            CheckBoxView.Checked   -= CheckBoxView_CheckedChanged;
            CheckBoxView.Unchecked -= CheckBoxView_CheckedChanged;

            CheckBoxProcedure.Checked   -= CheckBoxProcedure_CheckedChanged;
            CheckBoxProcedure.Unchecked -= CheckBoxProcedure_CheckedChanged;

            CheckBoxSynonym.Checked   -= CheckBoxSynonym_CheckedChanged;
            CheckBoxSynonym.Unchecked -= CheckBoxSynonym_CheckedChanged;

            TextBoxField.TextChanged -= TextBoxField_TextChanged;

            if (_filterItem == null)
            {
                TextBoxServer.Text      = "";
                TextBoxServer.IsEnabled = false;

                ComboBoxDatabase.Items.Clear();
                ComboBoxDatabase.IsEnabled = false;

                ComboBoxSchema.Items.Clear();
                ComboBoxSchema.IsEnabled = false;

                TextBoxPackage.Text      = "";
                TextBoxPackage.IsEnabled = false;

                TextBlockObjectName.Text      = "";
                TextBlockObjectName.IsEnabled = false;

                CheckBoxUserObject.IsChecked = true;
                CheckBoxUserObject.IsEnabled = false;

                CheckBoxSystemObject.IsChecked = true;
                CheckBoxSystemObject.IsEnabled = false;

                CheckBoxTable.IsChecked = false;
                CheckBoxTable.IsEnabled = false;

                CheckBoxView.IsChecked = false;
                CheckBoxView.IsEnabled = false;

                CheckBoxProcedure.IsChecked = false;
                CheckBoxProcedure.IsEnabled = false;

                CheckBoxSynonym.IsChecked = false;
                CheckBoxSynonym.IsEnabled = false;
            }
            else
            {
                TextBoxServer.Text      = GetFilterText(_filterItem.Server);
                TextBoxServer.IsEnabled = true;

                ComboBoxDatabase.Text      = GetFilterText(_filterItem.Database);
                ComboBoxDatabase.IsEnabled = true;

                ComboBoxSchema.Text      = GetFilterText(_filterItem.Schema);
                ComboBoxSchema.IsEnabled = true;

                TextBoxPackage.Text      = GetFilterText(_filterItem.Package);
                TextBoxPackage.IsEnabled = true;

                TextBoxObjectName.Text      = GetFilterText(_filterItem.Object);
                TextBoxObjectName.IsEnabled = true;

                CheckBoxUserObject.IsChecked = _filterItem.FlagUser;
                CheckBoxUserObject.IsEnabled = true;

                CheckBoxSystemObject.IsChecked = _filterItem.FlagSystem;
                CheckBoxSystemObject.IsEnabled = true;

                CheckBoxTable.IsChecked = (_filterItem.ObjectTypes & MetadataType.Table) == MetadataType.Table;
                CheckBoxTable.IsEnabled = true;

                CheckBoxView.IsChecked = (_filterItem.ObjectTypes & MetadataType.View) == MetadataType.View;
                CheckBoxView.IsEnabled = true;

                CheckBoxProcedure.IsChecked = (_filterItem.ObjectTypes & MetadataType.Procedure) == MetadataType.Procedure;
                CheckBoxProcedure.IsEnabled = true;

                CheckBoxSynonym.IsChecked = (_filterItem.ObjectTypes & MetadataType.Synonym) == MetadataType.Synonym;
                CheckBoxSynonym.IsEnabled = true;

                TextBoxField.Text      = GetFilterText(_filterItem.Field);
                TextBoxField.IsEnabled = true;
            }

            TextBoxServer.TextChanged += TextBoxServer_TextChanged;
            ComboBoxDatabase.AddHandler(TextBoxBase.TextChangedEvent,
                                        new TextChangedEventHandler(ComboBoxDatabase_TextChanged));
            ComboBoxSchema.AddHandler(TextBoxBase.TextChangedEvent,
                                      new TextChangedEventHandler(ComboBoxSchema_TextChanged));
            TextBoxPackage.TextChanged    += TextBoxPackage_TextChanged;
            TextBoxObjectName.TextChanged += TextBlockObjectName_TextChanged;

            CheckBoxUserObject.Checked   += CheckBoxUserObject_CheckedChanged;
            CheckBoxUserObject.Unchecked += CheckBoxUserObject_CheckedChanged;

            CheckBoxSystemObject.Checked   += CheckBoxSystemObject_CheckedChanged;
            CheckBoxSystemObject.Unchecked += CheckBoxSystemObject_CheckedChanged;

            CheckBoxTable.Checked   += CheckBoxTable_CheckedChanged;
            CheckBoxTable.Unchecked += CheckBoxTable_CheckedChanged;

            CheckBoxView.Checked   += CheckBoxView_CheckedChanged;
            CheckBoxView.Unchecked += CheckBoxView_CheckedChanged;

            CheckBoxProcedure.Checked   += CheckBoxProcedure_CheckedChanged;
            CheckBoxProcedure.Unchecked += CheckBoxProcedure_CheckedChanged;

            CheckBoxSynonym.Checked   += CheckBoxSynonym_CheckedChanged;
            CheckBoxSynonym.Unchecked += CheckBoxSynonym_CheckedChanged;

            TextBoxField.TextChanged += TextBoxField_TextChanged;
        }