private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int i = 0;

            if (i == 1)
            {
                paginator.ShowRowsChanges -= Paginator_ShowRowsChanges;
                // подписываемся на изменение кол-ва страниц
                paginator.CountChanged -= Paginator_CountChanged;
                // подписываемся на изменение текущего индекса
                paginator.CurrentIndexChanged -= Paginator_CurrentIndexChanged;
                i--;
            }
            dB = new SubCategoryDB(categoryDB, (Category)comboBox1.SelectedItem);
            // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки
            paginator = new Paginator <SubCategoryDB, SubCategory>(dB, 15);
            // для отображения данных в листвью я сделал отдельный класс
            // в нем кэшируются строки
            viewer = new ListViewViewer(listView1, 1, 15);
            // подписываемся на событие изменения выводимых записей
            paginator.ShowRowsChanges += Paginator_ShowRowsChanges;
            // подписываемся на изменение кол-ва страниц
            paginator.CountChanged += Paginator_CountChanged;
            // подписываемся на изменение текущего индекса
            paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged;
            i++;
            dB.Save();
        }
        public SubcategoryForm(CategoryDB categoryDB, AdvertisementDB advertisementDB)
        {
            InitializeComponent();
            this.categoryDB         = categoryDB;
            comboBox1.DataSource    = null;
            comboBox1.DataSource    = categoryDB.GetList();
            comboBox1.DisplayMember = "NameCategory";
            this.advertisementDB    = advertisementDB;
            // подписываемся на событие изменения выводимых записей
            paginator.ShowRowsChanges += Paginator_ShowRowsChanges;
            // подписываемся на изменение кол-ва страниц
            paginator.CountChanged += Paginator_CountChanged;
            // подписываемся на изменение текущего индекса
            paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged;

            // вызываем обновление всех данных и событий
            // за счет того, что данный метод вызывается ПОСЛЕ создания пагинатора интерфейс успевает подписаться на события пагинатора и нормально отобразить все данные
            dB.Save();
        }