2016-08-02 13 views
0

Ich bin derzeit auf ein Projekt, das Management von Praktikanten verwaltet. Jeder Praktikant hat Projekte. Auch jedes Projekt hat Schritte/Punkte. Wenn der Praktikant einen Schritt abschließt, erhöht das Projekt seinen Fortschritt. Im Grunde genommen hat jedes Projekt einen Fortschritt.manipulieren datagridview Spalte in 3-Tier-Architektur

Ich verwende eine benutzerdefinierte DataGridViewProgressColumn. Nachdem ich diese Spalte zu meiner Datagrid-Ansicht hinzugefügt habe, kann ich ihren Wert ändern, indem ich einfach ihren Wert auf etwas setze.

Dieser Wert stammt aus der Datenbank, soweit ich weiß, sollte ich nicht aus der UI-Ebene auf die Datenbank zugreifen. Aber Datagridview befindet sich auf UI-Ebene.

Ich habe 2 Lösungen in meinem Kopf:

  1. Sets jeden Wert von progresscolumn bei Datenzugriffsschicht: Ich denke nicht, das möglich ist, obwohl ich denke, die beste Lösung ist: Ich kann nicht nur den Wert ändern von -nicht platziert- progressColumn.

  2. Setzen Sie jeden Wert der Fortschrittsspalte auf UI-Ebene, wahrscheinlich "Arbeit aber gegen Architektur" -Lösung.

Wie kann ich dieses Problem lösen? Vielen Dank.

+0

Meine Datenbank ist MS-SQL, wenn es wichtig ist. –

+0

Der Fortschrittswert sollte eine Eigenschaft Ihres Modells sein und Sie sollten 'DataGridView' an eine Liste von' Model' binden. Ihre Methoden in Service Layer sollten eine Liste von 'Model' zurückgeben. –

Antwort

0

Wie auch immer, ich habe gerade eine DAL-Funktion verwendet, die einen int-Wert zurückgibt. Diese Funktion berechnet den Wert und gibt ihn zurück.

dataGridView1.Rows[i].Cells[dataGridView1.ColumnCount - 1].Value = DAL.getValue(rowID); 
Verwandte Themen