Hallo,
ich hab eine Methode in einer Klasse und möchte mit dieser Methode ein Datagrid in einer Form befüllen.
Hab, aber keine Idee wie ich die Referenz des Datagrids übergeben kann oder so.
Der Verweis auf die Grundlagen ist berechtigt. Dagegen beantwortet die vorgeschlagene Lösung zwar direkt die Frage des Thread-Starters, ist aber sehr schlechter Stil und sollte auf keinen Fall verwendet werden. Siehe die nachfolgende Diskussion.
Hallo,
das sind Grundlagen. Erkundige dich bitte das nächste mal selbst.
public class clsOwn
{
public clsOwn()
{
DataTable dt = new DataTable();
new frmMain(dt);
}
}
public class frmMain : Form
{
public frmMain(DataTable dt)
{
dgv.DataSource = dt;
}
}
Hallo
@Bugrick Wer im Glashaus sitzt ...
Eine Klasse sollte nie das Mainform kennen sondern nur umgekehrt. Das ganze sollte also so aussehen:
public class frmMain : Form
{
public frmMain()
{
Logic logic = new Logic();
dgv.DataSource = logic.GetData();
}
}
public class Logic
{
public DataTable GetData()
{
DataTable dt = new DataTable();
// Daten laden
return (dt);
}
}
Aber das sind nun wirklich die Grundlagen 😉
Thomas
Ok, war schon spät und ich hab nicht weiter darüber nachgedacht. Da hast du natürlich recht.
Wie schon gesagt, solltest du keine Referenzen von Controls an (Business-)Klassen übergeben. Diese sollten das GUI überhaupt nicht kennen.
Bitte eigne dir zuerst die Grundlagen an, siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und [FAQ] Wie finde ich den Einstieg in C#?
Siehe auch [FAQ] Kommunikation von 2 Forms analog.