Abruf von Zellinhalt nach sortieren im DataGrid

Hallo,

folgendes Problem:
Wie komme ich an die korrekten Werte in einem DataGrid wenn der User dieses Umsortiert hat. Das Problem ist das ich ja nur die Daten über das Datasource auslesen kann, wenn nun ein jemand im DataGrid die Spalten umsortiert weiß ich nicht mehr welche Zelle im DataTable gemeint ist!

myTable = (DataTable) dataGridUser.DataSource;
MessageBox.Show(myTable.Rows[dataGridUser.CurrentCell.RowNumber][dataGridUser.CurrentCell.ColumnNumber].ToString());

Hallo Bajor

Du brauchst unter anderem einen BindingManager:

protected DataTable tableOfGrid;
protected DataGrid thisGrid;
protected BindingManagerBase thisGridBM;

//In der Tabelle eine Spalte als Identifier outen
//(kann man ja ausblenden):
DataColumn[] col = new DataColumn[1];
col[0] = tableOfGrid.Columns[„id“];
tableOfGrid.PrimaryKey = col;

//Tabelle an Grid binden
openTheProcessGrid.DataSource = tableOfGrid;

//dann im z.B. im Event für einen Menupunkt
DataView dv = tableOfGrid.DefaultView;
DataRow openRow = ((System.Data.DataRowView) thisGridBM.Current).Row;
//Damit hat man die Inhalte der aktuellen Row in der Ansicht.
//ermittlen der zugehörigen Row in der Tabelle
DataRow dr = tableOfGrid.Rows.Find(openRow[„id“]);

Also eigentlich drei Schritte
Tabelle mit Identifier versehen und einen Bindingmanager einbauen
Aus der aktuellen Zeile der „Ansicht“ die Id der TableRow holen
Aus der Tabelle die Zeile über die Id suchen.

Hab das mal eben zusammengesucht, da es nicht „mal eben“ beschrieben ist. Ich kann mir gut vorstellen, dass es einfacher geht oder man sollte mal eine Methode aufsetzen, die einem die TableRow zurückgibt. Bisher stochere ich mit den genannten Methoden herum, aber idR erfolgreich.

Also: Hat jemand einen besseren, generischen Ansatz?

mfg

Dirk.Pegasus