Exemple #1
0
        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();
        }
Exemple #2
0
        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();
        }
Exemple #4
0
 public void Save()
 {
     dB.Save();
     CountChanged?.Invoke(this, new EventArgs());
 }