HaGGi.13
Ensign
- Registriert
- März 2008
- Beiträge
- 215
Hi Leute,
jetzt muss ich mich auch mal mit ein Problem an euch wenden.
Vorweg:
Ich Arbeite mit einem DataGridView (im weiteren Verlauf „DGV“ genannt) an welcher ich per .DataSource ein BindingSource (im weiteren Verlauf „BS“ genannt) gebunden habe. Das BindingSource beinhaltet einen komplexen Datentyp, welcher in sich wieder komplexe Datentypen beinhaltet.
Hier der Datentyp:
Mich interessiert hier speziell nur der Datentyp „Employee“ und daher hier der Aufbau dieses Datentypes:
Nun zu meinem Problem:
Da das BS an das DGV (per Designer) gebunden wurde, wurden auch die entsprechenden Spalten automatisch erstellt, soweit so gut. Nun ist es aber so, dass in der Spalte „Employee“, nur der Pfad des komplexen Datentyps zu sehen ist. Ich möchte aber speziell die Eigenschaft „Name“ für diese Column abrufen. Daher war meine erste Idee die Eigenschaft .DataPropertyName auf „Name“ zu setzen. Das bewirkt allerdings nur, dass gar nichts mehr in dieser Spalte angezeigt wird, sie also leer ist.
Zum weiteren Verständnis hier mal die .DataSource Belegung:
(Das BindingSource wird mit Hilfe eines LINQ Statements mit Daten aus einer SQL-Datenbank gefüllt.)
Hat vielleicht jemand eine Idee oder einen Tipp für mich, wie ich das elegant und performant realisieren kann? Ich sitze schon etwas länger an dieser Problematik und möchte es nicht wieder so lösen, dass ich Zeile für Zeile und Spalte für Spalte einzeln dem DGV hinzufügen muss. Denn dieses DGV wird später mehrere 1000 Datensätze darstellen müssen und diese sollen wenn möglich auch in einer angemessen Zeit geladen werden.
Ich hoffe es hat wer einen Anhaltspunkt für mich den ich noch nicht kenne oder ausprobiert habe und ich hab genug Infos gegeben.
Danke.
jetzt muss ich mich auch mal mit ein Problem an euch wenden.
Vorweg:
Ich Arbeite mit einem DataGridView (im weiteren Verlauf „DGV“ genannt) an welcher ich per .DataSource ein BindingSource (im weiteren Verlauf „BS“ genannt) gebunden habe. Das BindingSource beinhaltet einen komplexen Datentyp, welcher in sich wieder komplexe Datentypen beinhaltet.
Hier der Datentyp:
Code:
public class HotlineContract
{
#region Fields
private IDataController controller_ = null;
private EmployeeContract employee_ = null;
private StoreContract store_ = null;
#endregion
#region Properties
public int HotlineID
{ get; set; }
public string F_StoreNumber
{ get; set; }
public int F_EmployeeID
{ get; set; }
public string CreationDateTime
{ get; set; }
public string StoreEmployee
{ get; set; }
public string Problem
{ get; set; }
public string Solution
{ get; set; }
public string EditDateTime
{ get; set; }
public EmployeeContract Employee
{
get
{
this.employee_ = this.controller_.GetEmployee_ByHotline(this);
return this.employee_;
}
}
public StoreContract Store
{
get
{
this.store_ = this.controller_.GetStore_ByHotline(this);
return this.store_;
}
}
#endregion
#region CTor
public HotlineContract()
{
this.controller_ = DataControllerHolder.ControllerHolder.Controller;
}
public HotlineContract(IDataController controller)
{
this.controller_ = controller;
}
#endregion
}
Mich interessiert hier speziell nur der Datentyp „Employee“ und daher hier der Aufbau dieses Datentypes:
Code:
public class EmployeeContract
{
#region Fields
private IDataController controller_ = null;
private List<CashpointContract> cashpoints_ = null;
private List<HotlineContract> hotlines_ = null;
#endregion
#region Properties
public int EmployeeID
{ get; set; }
public string Name
{ get; set; }
public bool Status
{ get; set; }
public List<CashpointContract> Cashpoints
{
get
{
this.cashpoints_ = this.controller_.GetAllCashpoints_ByEmployee(this).ToList();
return this.cashpoints_;
}
}
public List<HotlineContract> Hotlines
{
get
{
this.hotlines_ = this.controller_.GetAllHotlines_ByEmployee(this).ToList();
return this.hotlines_;
}
}
#endregion
#region CTor
public EmployeeContract()
{
this.controller_ = DataControllerHolder.ControllerHolder.Controller;
}
public EmployeeContract(IDataController controller)
{
this.controller_ = controller;
}
#endregion
}
Nun zu meinem Problem:
Da das BS an das DGV (per Designer) gebunden wurde, wurden auch die entsprechenden Spalten automatisch erstellt, soweit so gut. Nun ist es aber so, dass in der Spalte „Employee“, nur der Pfad des komplexen Datentyps zu sehen ist. Ich möchte aber speziell die Eigenschaft „Name“ für diese Column abrufen. Daher war meine erste Idee die Eigenschaft .DataPropertyName auf „Name“ zu setzen. Das bewirkt allerdings nur, dass gar nichts mehr in dieser Spalte angezeigt wird, sie also leer ist.
Zum weiteren Verständnis hier mal die .DataSource Belegung:
(Das BindingSource wird mit Hilfe eines LINQ Statements mit Daten aus einer SQL-Datenbank gefüllt.)
Code:
this.dgvtestBindingSource.DataSource = this.hotlineContractBindingSource;
Hat vielleicht jemand eine Idee oder einen Tipp für mich, wie ich das elegant und performant realisieren kann? Ich sitze schon etwas länger an dieser Problematik und möchte es nicht wieder so lösen, dass ich Zeile für Zeile und Spalte für Spalte einzeln dem DGV hinzufügen muss. Denn dieses DGV wird später mehrere 1000 Datensätze darstellen müssen und diese sollen wenn möglich auch in einer angemessen Zeit geladen werden.
Ich hoffe es hat wer einen Anhaltspunkt für mich den ich noch nicht kenne oder ausprobiert habe und ich hab genug Infos gegeben.
Danke.