public CountryForm() { InitializeComponent(); dB = new CountryDB(); // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки paginator = new Paginator <CountryDB, Country>(dB, 15); // для отображения данных в листвью я сделал отдельный класс // в нем кэшируются строки viewer = new Viewer <Country>(); viewer.ViewerControl = listView1; var prop = listView1.GetType().GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); prop.SetValue(listView1, true, null); List <string> tags = new List <string>(); for (int i = 0; i < listView1.Columns.Count; i++) { tags.Add(listView1.Columns[i].Tag.ToString()); } Tags = tags; viewer.UniversalView(tags, dB.GetList()); // подписываемся на событие изменения выводимых записей paginator.ShowRowsChanges += Paginator_ShowRowsChanges; // подписываемся на изменение кол-ва страниц paginator.CountChanged += Paginator_CountChanged; // подписываемся на изменение текущего индекса paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged; // вызываем обновление всех данных и событий // за счет того, что данный метод вызывается ПОСЛЕ создания пагинатора интерфейс успевает подписаться на события пагинатора и нормально отобразить все данные dB.Save(); }
private void добавитьToolStripMenuItem_Click(object sender, EventArgs e) { paginator.ShowRowsChanges -= Paginator_ShowRowsChanges; AddCountryForm addCountryForm = new AddCountryForm(dB.Add(), dB); addCountryForm.ShowDialog(); paginator.ShowRowsChanges += Paginator_ShowRowsChanges; dB.Save(); }
public CountryForm(CountryDB dB, AdvertisementDB advertisementDB) { InitializeComponent(); this.dB = dB; this.advertisementDB = advertisementDB; // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки paginator = new Paginator <CountryDB, Country>(dB, 15); // для отображения данных в листвью я сделал отдельный класс // в нем кэшируются строки viewer = new ListViewViewer(listView1, 1, 15); // подписываемся на событие изменения выводимых записей paginator.ShowRowsChanges += Paginator_ShowRowsChanges; // подписываемся на изменение кол-ва страниц paginator.CountChanged += Paginator_CountChanged; // подписываемся на изменение текущего индекса paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged; // вызываем обновление всех данных и событий // за счет того, что данный метод вызывается ПОСЛЕ создания пагинатора интерфейс успевает подписаться на события пагинатора и нормально отобразить все данные dB.Save(); }
public void Save() { dB.Save(); CountChanged?.Invoke(this, new EventArgs()); }