Naja, es ist irgendwie genau das Vorgehen, was ich beschrieben hatte
Zuerst einmal zum Stil:
In C# werden generell keine Unterstriche in Namen von Bezeichnern verwendet. Tippfehler ("TExt", "GeneruereHTML") darf man auch im Quelltext beheben.
_x scheint ein Feld der Klasse zu sein. Das halte ich für unsauber, weil es somit auch von anderer Methoden zugreifbar ist. Es reicht, wenn Du
GeneriereHTML einen entsprechenden Parameter gibst, dann brauchst Du das Feld nicht. Ich würde außerdem empfehlen, einen sprechenderen Namen (z.B. "currentItem") zu benutzen.
Noch ein Wort zu Deinem HTML-Quelltext:
Der "head"-Tag wird nie geschlossen. Der CSS-Teil ist nicht mit entsprechenden Tags umschlossen. Du erzeugst in der Tabelle keine Zeilen ("tr").
Generell nochmal der Rat: Schau Dich mal nach einer Template-Engine um, damit Du den HTML-Quelltext nicht im C#-Quelltext stehen hast, sondern Design und Logik trennen kannst. Meist kann man ein Template dann auch viel besser bearbeiten, weil es eine HTML-Datei ist, mit der man in einem entsprechenden Editor bequem arbeiten kann.
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".