Beispiel #1
0
        public CategoryForm()
        {
            InitializeComponent();

            dB = new CategoryDB();
            // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки
            paginator = new Paginator <CategoryDB, Category>(dB, 10);
            // для отображения данных в листвью я сделал отдельный класс
            // в нем кэшируются строки
            viewer = new Viewer <Category>();
            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();
        }
Beispiel #2
0
        private void добавитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            paginator.ShowRowsChanges -= Paginator_ShowRowsChanges;
            AddCategoryForm addCategoryForm = new AddCategoryForm(dB.Add(), dB);

            addCategoryForm.ShowDialog();
            paginator.ShowRowsChanges += Paginator_ShowRowsChanges;
            dB.Save();
        }
Beispiel #3
0
        public SubcategoryForm()
        {
            InitializeComponent();

            var db = new CategoryDB();

            // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки
            paginator = new Paginator <CategoryDB, Category>(db, 10);
            // для отображения данных в листвью я сделал отдельный класс
            // в нем кэшируются строки

            // подписываемся на событие изменения выводимых записей
            paginator.ShowRowsChanges += Paginator_ShowRowsChanges;
            // подписываемся на изменение кол-ва страниц
            paginator.CountChanged += Paginator_CountChanged;
            // подписываемся на изменение текущего индекса
            paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged;

            // вызываем обновление всех данных и событий
            // за счет того, что данный метод вызывается ПОСЛЕ создания пагинатора интерфейс успевает подписаться на события пагинатора и нормально отобразить все данные
            db.Save();
        }
 public void Save()
 {
     dB.Save();
     CountChanged?.Invoke(this, new EventArgs());
 }