Ich habe eine Liste, die eine Reihe von Transaktionsobjekten enthält. Was ich versuche, diese Transaktionsobjekte in einem Datagridview-Steuerelement beim Laden eines Formulars anzuzeigen, sollte im Grunde die Datagridview etwas eines Transaktionsregisters darstellen, um die Daten für jedes der Transaktionsobjekte in der Liste anzuzeigen.Auffüllen von Datagridview mit Liste von Objekten
Ich muss zugeben, ein Mangel an Erfahrung, wenn es um die Verwendung von Datagridviews geht und ich habe einige Schwierigkeiten mit dem Verständnis, was ich hier tun muss.
Meine Frage ist, wie gehe ich dazu, die Details jedes der Objekte in der Liste zu erhalten, um in der Datagridview anzuzeigen?
Hier ist mein Code.
Zuerst wird die Transaktionsklasse:
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;
}
}
}
Jetzt ist der Code für die "Register" Form:
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]);
}
}
Und hier ist der Ausgang I erhalten.
ich die Datenbindung hatte angesehen, da sie die am wenigsten kludgy Lösung zu sein scheint, da es für alle Änderungen an den Datenkonten Quelle. Edit: Ich drücke Enter zu schnell. Ich habe versucht zu sagen, dass ich mir über die Datenbindung nicht ganz sicher bin, da ich es vorher nicht wirklich gemacht habe. Ich schaue mir den Link an, danke. – morris295
Es ist anfangs etwas kompliziert, wenn man es nicht kennt, aber es wird einfacher mit Zeit und Übung (obwohl es immer noch viele frustrierende Momente bieten kann). Die oben beschriebene Situation scheint ein einfaches Beispiel zu sein, um damit anzufangen, also viel Glück. Fühlen Sie sich frei, mit spezifischeren Fragen zurückzukommen, wenn Sie auf sie stoßen. – Gjeltema
Ich endete mit Datenbindung, danke für die Anleitung, die es sehr hilfreich war. Du hast mir eine Menge Leid dabei erspart. – morris295