private void FilterInterestCombo(object sender, EventArgs e)
        {
            PInterestCategoryTable CategoryTable;
            PInterestCategoryRow   CategoryRow;
            string SelectedCategory = cmbPPartnerInterestInterestCategory.GetSelectedString();
            string SelectedInterest = cmbPPartnerInterestInterest.GetSelectedString();

            cmbPPartnerInterestInterest.Filter = PInterestTable.GetCategoryDBName() + " = '" + SelectedCategory + "'";

            // reset text to previous value or (if not found) empty text field
            if (cmbPPartnerInterestInterest.GetSelectedString() != String.Empty)
            {
                if (!cmbPPartnerInterestInterest.SetSelectedString(SelectedInterest))
                {
                    cmbPPartnerInterestInterest.SetSelectedString("", -1);
                }
            }

            CategoryTable = (PInterestCategoryTable)TDataCache.TMPartner.GetCacheablePartnerTable(TCacheablePartnerTablesEnum.InterestCategoryList);
            CategoryRow   = (PInterestCategoryRow)CategoryTable.Rows.Find(new object[] { SelectedCategory });

            // reset list of levels
            cmbPPartnerInterestLevel.Text = "";
            cmbPPartnerInterestLevel.Items.Clear();

            if ((CategoryRow != null) &&
                !CategoryRow.IsLevelRangeLowNull() &&
                !CategoryRow.IsLevelRangeHighNull())
            {
                // fill the combobox with valid values
                for (int ii = CategoryRow.LevelRangeLow; ii <= CategoryRow.LevelRangeHigh; ii++)
                {
                    cmbPPartnerInterestLevel.Items.Add(ii);
                }

                txtInterestLevelExplanation.Text = CategoryRow.LevelDescriptions;
            }
            else
            {
                txtInterestLevelExplanation.Text = "";
            }

            if ((GetSelectedDetailRow() != null) &&
                !GetSelectedDetailRow().IsLevelNull())
            {
                cmbPPartnerInterestLevel.SetSelectedInt32(GetSelectedDetailRow().Level);
            }
        }