Mam listę zawierającą serię obiektów transakcji. Próbuję zrobić to, aby wyświetlić te obiekty transakcji w formancie Datagridview przy ładowaniu formularza, w zasadzie widok Datagridview powinien reprezentować coś z rejestru transakcji, aby wyświetlić dane dla każdego obiektu transakcji na liście.zapełnianie datagridview z listą obiektów
Muszę przyznać się do braku doświadczenia, jeśli chodzi o używanie Datagridviews i mam pewne trudności ze zrozumieniem tego, co muszę tutaj zrobić.
Moje pytanie brzmi: w jaki sposób uzyskać szczegółowe informacje o każdym z obiektów na liście, które mają być wyświetlane w widoku danych Datagridview?
Oto mój kod.
Pierwsza klasa transakcja:
public class Transaction
{
// Class properties
private decimal amount;
private string type;
private decimal balance;
private string date;
private string transNum;
private string description;
// Constructor to create transaction object with values set.
public Transaction(decimal amount, string type, decimal currBal, string date, string num, string descrip)
{
this.amount = amount;
this.type = type;
this.balance = currBal;
this.date = date;
this.transNum = num;
this.description = descrip;
}
// Get and Set accessors to allow manipulation of values.
public decimal Amount
{
get
{
return amount;
}
set
{
amount = value;
}
}
public string Type
{
get
{
return type;
}
set
{
type = value;
}
}
public decimal Balance
{
get
{
return balance;
}
set
{
balance = value;
}
}
public string Date
{
get
{
return date;
}
set
{
date = value;
}
}
public string TransNum
{
get
{
return transNum;
}
set
{
transNum = value;
}
}
public string Description
{
get
{
return description;
}
set
{
description = value;
}
}
public decimal addCredit(decimal balance, decimal credit)
{
decimal newBalance;
newBalance = balance + credit;
return newBalance;
}
public decimal subtractDebit(decimal balance, decimal debit)
{
decimal newBalance;
newBalance = balance - debit;
return newBalance;
}
}
}
Teraz kod na "Rejestracja" postaci:
public partial class Register : Form
{
List<Transaction> tranList = new List<Transaction>();
public Register(List<Transaction> List)
{
InitializeComponent();
this.tranList = List;
}
private void Register_Load(object sender, System.EventArgs e)
{
//regView represents the Datagridview that I'm trying to work with
regView.AutoSize = true;
regView.DataSource = tranList;
regView.Rows.Add(tranList[0]);
}
}
A oto wyjście otrzymuję.
I uznała wiązania danych, ponieważ wydaje się być najmniej kludgy rozwiązanie, ponieważ stanowi ona dla wszelkich zmianach danych źródło. Edycja: zbyt szybko wcisnąłem klawisz Enter. Próbowałem powiedzieć, że nie byłem całkowicie pewien powiązania danych, ponieważ tak naprawdę nie zrobiłem tego wcześniej. Popatrzę na podany link, dzięki. – morris295
Początkowo jest to trochę skomplikowane, gdy nie jesteś obeznany z nim, ale z czasem i ćwiczeniem staje się łatwiejsze (choć wciąż oferuje wiele frustrujących chwil). Sytuacja, którą masz powyżej, wydaje się być prostym przykładem na początek, więc powodzenia. Jeśli spotkasz się z nimi, możesz wrócić do bardziej szczegółowych pytań. – Gjeltema
Skończyło się na używaniu databinding, dziękuję za wskazówki, to było bardzo pomocne. Uratowałeś mi mnóstwo żalu na ten temat. – morris295