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(); }