Esempio n. 1
0
        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();
        }
Esempio n. 4
0
        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();
        }