public CityForm() { InitializeComponent(); CountryDB = new CountryDB(); viewer = new Viewer <City>(); 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; comboBox1.DataSource = null; comboBox1.DataSource = CountryDB.GetList(); comboBox1.DisplayMember = "NameCountry"; // подписываемся на событие изменения выводимых записей paginator.ShowRowsChanges += Paginator_ShowRowsChanges; // подписываемся на изменение кол-ва страниц paginator.CountChanged += Paginator_CountChanged; // подписываемся на изменение текущего индекса paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged; // вызываем обновление всех данных и событий // за счет того, что данный метод вызывается ПОСЛЕ создания пагинатора интерфейс успевает подписаться на события пагинатора и нормально отобразить все данные dB.Save(); }
private void добавитьToolStripMenuItem_Click(object sender, EventArgs e) { AddCityForm addCityForm = new AddCityForm(dB.Add(), CountryDB); addCityForm.ShowDialog(); dB.Save(); }
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 CityDB(CountryDB, (Country)comboBox1.SelectedItem); // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки paginator = new Paginator <CityDB, City>(dB, 15); // для отображения данных в листвью я сделал отдельный класс // в нем кэшируются строки viewer = new ListViewViewer(listView1, 1, 15); // подписываемся на событие изменения выводимых записей paginator.ShowRowsChanges += Paginator_ShowRowsChanges; // подписываемся на изменение кол-ва страниц paginator.CountChanged += Paginator_CountChanged; // подписываемся на изменение текущего индекса paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged; i++; dB.Save(); }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { Country country = (Country)comboBox1.SelectedItem; dB = new CityDB(CountryDB, country); // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки paginator = new Paginator <CityDB, City>(dB, 10); // для отображения данных в листвью я сделал отдельный класс // в нем кэшируются строки if (country.Cities.Count == 0) { dB.Save(); return; } viewer.UniversalView(Tags, country.Cities); dB.Save(); }