Benutzer mit den meisten Antworten
C# WPF DataGrid Selected Cell Rowindex ermitteln

Frage
Antworten
-
Hallo,
ich vermute mal, dass du irgendwo her eine DataGridCell hast. Da fällt mir momentanb auch nur die Möglichkeit ein manuell im VisualTree hoch zu gehen bis man das DataGridRow findet. Von dem kann man dann der Index abfragen:DependencyObject dep = cell; while (dep != null && !(dep is DataGridRow)) dep = VisualTreeHelper.GetParent(dep); var rowIndex = dep is DataGridRow ? (dep as DataGridRow).GetIndex() : -1;
In einigen Events des DG ist es aber auch möglich das DataGridRow-Objekt direkt über die EventArgs abzurufen.Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Carl-Heinz Robert Samstag, 21. März 2015 07:21
- Tag als Antwort aufgehoben Carl-Heinz Robert Freitag, 10. November 2017 11:25
- Als Antwort markiert Carl-Heinz Robert Sonntag, 3. Dezember 2017 09:11
Alle Antworten
-
Hallo,
ich vermute mal, dass du irgendwo her eine DataGridCell hast. Da fällt mir momentanb auch nur die Möglichkeit ein manuell im VisualTree hoch zu gehen bis man das DataGridRow findet. Von dem kann man dann der Index abfragen:DependencyObject dep = cell; while (dep != null && !(dep is DataGridRow)) dep = VisualTreeHelper.GetParent(dep); var rowIndex = dep is DataGridRow ? (dep as DataGridRow).GetIndex() : -1;
In einigen Events des DG ist es aber auch möglich das DataGridRow-Objekt direkt über die EventArgs abzurufen.Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Carl-Heinz Robert Samstag, 21. März 2015 07:21
- Tag als Antwort aufgehoben Carl-Heinz Robert Freitag, 10. November 2017 11:25
- Als Antwort markiert Carl-Heinz Robert Sonntag, 3. Dezember 2017 09:11
-
Hallo Tom,
danke für Deine Antwort.
Mein eigentliches Ziel ist es eine Zelle nach erfolgter Bearbeitung farbig zu markieren.
Dazu hätte ich für folgenden Code den Row Index gebraucht.
RowIndex = ?;
DataGridRow row = this.SichtenDataGrid.ItemContainerGenerator.ContainerFromItem(DG.Items[RowIndex]) as DataGridRow;
DataGridCell cell = this.SichtenDataGrid.Columns[DG.CurrentCell.Column.DisplayIndex].GetCellContent(row).Parent as DataGridCell;
cell.Background = System.Windows.Media.Brushes.Red;//Hintergrund zuweisenIch glaube aber der bessere Weg das Problem zu lösen, geht über Property Trigger im XAML.
Hierzu muss ich erst noch lernen.
viele Grüße
Carl-Heinz