BindingManagerBase anhand einer DataRow herausfinden

yesso

Mitglied
Hi,

kann mir jemand wie ich anhand einer gegebenen DataRow dessen BindingManagerBase.Position herausfinde?

Oder sollte ich alle Zeilen in einer for-schleife durchlaufen und schauen ob die aktuelle der gesuchten DataRow gleich ist und wenn ja, dann hätte ich anhand des schleifenzählers auch dessen Position oder

Soll ich das so machen oder geht das noch einfacher?

mfG
yesso
 
Hallo,

meinst du anstatt DataRow DataGrid? Soweit mir bekannt ist hat ein DataGrid einen BindingManager, diesen kannst du mit:

Code:
BindingManagerBase bm = this.dataGrid1.BindingContext[this.dataGrid1.DataSource,this.dataGrid1.DataMember];
DataRow dr = ((DataRowView)bm.Current).Row;

abrufen.

Gruß,
Arcaton
 
Nein, leider nicht! Das DataRow Objekt kommt aus einem DataSet bzw. aus einer DataTable darin. Und ich würde halt gern wissen wie ich anhand der gegebenen DataRow dessen Position in der DataTable herausfinde...

Hab das jetzt erstmal wie oben beschrieben gelöst aber mit scheint, dass ist nicht das Gelbe vom Ei, dafür müssen die MS-Entwickler doch etwas implementiert haben...

mfG
yesso
 
Zuletzt bearbeitet:
Hallo,

es gäbe die Möglichkeit mit einem DataViewObjekt zu arbeiten.

Code:
dataRow.Table.DefaultView.Sort = "ID";
int index = dataRow.Table.DefaultView.Find(4);

Allerdings bekommst du hier den Index der _sortierten_ DataTable. Vielleicht geht das auch mit einer unsortierten DataTable, allerdings bekam ich da immer eine Exception. Wie diese Methode von der Performance her ist weiß ich nicht (da hier ja erst noch sortiert werden muss), wenn deine DataTable nich allzu groß ist bist du mit einer inkrementellen Suche vielleicht gar nicht so schlecht bedient.

Gruß Arcaton
 
Zurück