Ho una lista che contiene una serie di oggetti di transazione. Quello che sto cercando di fare è visualizzare questi oggetti di transazione in un controllo Datagridview sul caricamento di un modulo, in pratica Datagridview dovrebbe rappresentare qualcosa di un registro delle transazioni per visualizzare i dati per ciascuno degli oggetti di transazione nell'elenco.popolamento datagridview con elenco di oggetti
Devo ammettere una mancanza di esperienza quando si tratta di utilizzare DatagridView e ho qualche difficoltà a capire cosa devo fare qui.
La mia domanda è: come posso ottenere i dettagli di ciascuno degli oggetti nell'elenco da visualizzare in Datagridview?
Ecco il mio codice.
prima classe di transazione:
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;
}
}
}
Ora il codice per il modulo "Registra":
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]);
}
}
Ed ecco l'output che ottengo.
avevo considerato l'associazione di dati come sembra essere la soluzione meno kludgy, poiché rappresenta eventuali modifiche dei dati fonte. Edit: I hit enter too quickly. Stavo cercando di dire che non ero assolutamente sicuro dell'associazione dati poiché non l'ho fatto in precedenza. Dò un'occhiata al link che hai fornito, grazie. – morris295
All'inizio è un po 'complicato quando non lo conosci, ma diventa più facile con il tempo e la pratica (anche se può comunque offrirti molti momenti frustranti). La situazione che hai sopra sembra dovrebbe essere un semplice esempio per iniziare, quindi buona fortuna. Sentiti libero di tornare con domande più specifiche se li incontri. – Gjeltema
Ho finito con l'utilizzare il databinding, grazie per la guida è stato molto utile. Mi hai risparmiato un sacco di dolore su questo. – morris295