Есть ли какое-либо решение «Gridview показывает только одну информацию после обновления новой записи.»? - PullRequest
0 голосов
/ 08 июля 2019

Каждый раз, когда я нажимаю кнопку, отображается только одна строка.Но он должен показывать несколько строк.Я объявляю список после вызова конструктора.Я пытался с gridview.update () и gridview.refresh (), но они не работали.Я не смог выяснить проблему.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using JournalEntryApp.Model;

namespace JournalEntryApp
{
    public partial class NewDocument : Form
    {
        public NewDocument()
        {
            InitializeComponent();
        }

        List<JEFrom> JEFromsList = new List<JEFrom>();
        List<JETo> JETosList = new List<JETo>();
        JEFrom _jef = null;

        private void NewDocument_Load(object sender, EventArgs e)
        {
            label4.Text = DateTime.Now.ToString("dd-MMM-yyyy");
            using (var db =new JournalContext())
            {
                unitComboBox.DataSource = db.Units.ToList();
                unitComboBox.ValueMember = "Id";
                unitComboBox.DisplayMember = "UnitName";

            }
        }

        private void addToListButton_Click(object sender, EventArgs e)
        {

            if (string.Empty== fromAccountTextBox.Text)
            {
                MessageBox.Show("From Account can not be empty!!!");
            }
            else if (string.Empty == toAccountTextBox.Text)
            {
                MessageBox.Show("To Account can not be empty!!!");
            }
            else
            {
                _jef = new JEFrom{ FromEntryName= fromAccountTextBox.Text , FromEntryDate= DateTime.Now };
                JEFromsList.Add(_jef);
                temporaryDataGridView.DataSource = JEFromsList;

                fromAccountTextBox.Text = string.Empty;
                toAccountTextBox.Text = string.Empty;



            }

        }
    }
}

1 Ответ

1 голос
/ 08 июля 2019

Временный элемент DataGridView не может обнаружить, что вы изменили источник данных.Он будет обновляться только при изменении источника данных.

temporaryDataGridView.DataSource = null;
temporaryDataGridView.DataSource = JEFromsList;

, поэтому сначала измените нулевой источник данных.

Или вы можете использовать bindingSource

private void NewDocument_Load(object sender, EventArgs e)
{
    this.bindingSource1.DataSource = JEFromsList;
    temporaryDataGridView.DataSource = this.bindingSource1;

    label4.Text = DateTime.Now.ToString("dd-MMM-yyyy");
    using (var db =new JournalContext())
    {
        unitComboBox.DataSource = db.Units.ToList();
        unitComboBox.ValueMember = "Id";
        unitComboBox.DisplayMember = "UnitName";
    }
}

в button_click

JEFromsList.Add(_jef);
bindingSource1.ResetBindings(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...