Autor Beitrag
Matg40
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 52



BeitragVerfasst: Mi 10.05.06 16:38 
Hi!


Gibts ne Möglchkeit, eine assoziative Tabelle zu erzeugen, also z.B. mit folgender Zugriffsmöglichkeit:

table["spalte 1", "zeile 3"].Value = "test";


Bisher gehts über das DataGridView mit Spaltenname (angezeigter ist ein anderer).


Kann man den RowHeader auch irgendwie benennen (so wie den ColumnHeader) ?

Oder gehts irgendwie einfacher (direkt mit DataTable...) ?


(Notfalls probier ich entweder eine versteckte Spalte zu nutzen, oder von DataRow abzuleiten)


MfG

Matt
Matg40 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 52



BeitragVerfasst: Mi 10.05.06 17:00 
Hi!


Ich kann einem RowHeader (DataGridView) jetzt einen angezeigten Wert geben, und ihm Zusatzinformationen übergeben.


Nur das Zugreifen darauf geht noch nicht... ich komm nicht an die Zusatzinfos ran:

dataGridView1.Rows[0].HeaderCell.Tag = "test" geht, aber nicht umgekehrt, wie etwa:

dataGridView1["spalte 1", dataGridView1.Rows.HeaderCell["zeile 2"] ]


Gibts da noch Hoffnung ?

MfG

Matt
Matg40 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 52



BeitragVerfasst: Mi 10.05.06 17:13 
Hi!



Etwas umständlich hätt ichs jetzt über eine Hashtable für die Zeilen gelöst...


aber wenn jemand noch was eleganteres einfällt :D



MfG

Matt
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mi 10.05.06 17:17 
user profile iconMatg40 hat folgendes geschrieben:
aber wenn jemand noch was eleganteres einfällt :D
Ja, einfach nicht so krüppelig über Strings und DateSets auf die Daten zugreifen.
Wenn du statt DataSets deine Daten in normale DatenKlassen packen würdest hättest du a) volle Kontrolle darüber und b) würde nicht für jeden Zugriff 50.000 Operationen ablaufen. DataSets/DataTables sind absolut furchtbare Biester...

Wenn du danach immer noch indiziert darauf zugreifen willst kannst du immer noch mit Dictionaries arbeiten...
Matg40 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 52



BeitragVerfasst: Mi 10.05.06 17:22 
Hi !


Ja, ich machs nicht gern, aber ich brauch was zum Anzeigen im DataGridView. :oops:


Ich nehm schon nur ne DataTable, damits etwas performanter wird...


Vielleicht werd ich doch mal versuchen, was anderes als DataSource zu verwenden (vielleicht über BindingSource)...



MfG

Matt
Matg40 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 52



BeitragVerfasst: Do 11.05.06 07:22 
Titel: Hash x Hash
Hi !


Ich wollts jetzt mal mit einer selbstgemachten 2d-Hashtable versuchen...

Ich habe eine Hashtable erzeugt (~Spalten), die jeweils u.a. eine Hashtable (~Zelle in Zeile) enthält.


Dazu hab ich ein paar Methoden ( addCol(), addRow(), ...) geschrieben.

Jetzt würd ich das gern als DataSource im DataGridView verwenden. Wenn ich die Tabelle als DataSource eintrage,
passiert nichts.


Wie kann ich die Tabelle jetzt von DataGridView anzeigen lassen ( irgendwie ToString() überschreiben? ) :?:


MfG

Matt
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Do 11.05.06 10:19 
Das wird so nicht gehen _können_.
Du musst dir eine Klasse schreiben, die meinetwegen IList oder IBindingList implementiert.
Darin kannst du ein Dictionary als Feld haben, das du bei Add/Remove/Clear immer synchron zu den Daten hälst.
Der Indexer für die Spalten ist doch unsinnig, wenn du direkt die Eigenschaften der Itemklasse ansprechen kannst...