Laden...

DataGrid zur selectierten Zeile scrollen

Erstellt von Fr3dd1 vor 13 Jahren Letzter Beitrag vor 12 Jahren 4.351 Views
F
Fr3dd1 Themenstarter:in
106 Beiträge seit 2010
vor 13 Jahren
DataGrid zur selectierten Zeile scrollen

Hallo zusammen,

ich habe mal wieder eine kurze Frage:
Ich habe ein DataGrid mit mehreren Zeilen gefüllt (ObservableCollection Bindung)
Jetzt besteht folgendes Problem: Die selektierte Zeile (ebenfalls über Bindung) ist außerhalb des sichtbaren Bereises des DataGrid (zu weit unten, kann man allerdings per Balken hinscrollen). Gibt es eine einfache Eigenschaft beim DataGrid, wo ich sagen kann, dass die selektierte Zeile auf jedenfall im sichtbaren Bereich ist?

Gruß Fr3dd1

G
75 Beiträge seit 2007
vor 13 Jahren

Moin,

nicht über XAML aber über Code:
wpf+datagrid+autoscroll

Ciao:
GG 😉

Ciao:
GG 😉

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo Fr3dd1,

entweder du machst es per Code wie von GG71 gesagt, aber dann hast du ein Problem dass du die MVVM-Regeln brechen musst.

Oder du machst es über ein AttachedProperty was IMHO der schönere Weg wäre.
Siehe: ListBox automatically scroll CurrentItem into view

Der Post in meinen Blog beschreibt wie man es erreichen kann dass in der ListBox immer das CurrentItem der ObservableCollection im sichtbaren Bereich ist.
Das ist doch das was du willst oda?

Gruß
Michael

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo michlG,

von MVVM ist hier nicht die Rede. Der Fragensteller hat davon nichts gesagt. Ich gehe davon aus, dass es für den Fragensteller eher noch mehr Fragen aufwirft. Das möchten wir ja nicht.

Hallo Fr3dd1,

das einfachste wäre an der Stelle mit ScrollIntoView zur gewünschten Stelle zu scrollen.

zero_x

F
Fr3dd1 Themenstarter:in
106 Beiträge seit 2010
vor 13 Jahren

Ich würde die Methode mit ScrollIntoView bevorzugen. Da gibt es allerdings ein Problem: Wenn ich im CodeBehind ein neues DataGrid anlege, hat dieses DataGrid die Methode "ScrollIntoView", wenn ich mein im XAML Code erstelltes DataGrid über den Namen ansteuere, hat dieses die Methode nicht. Woran liegt das?

EDIT: Habe noch eine weitere Frage, passt zwar nicht 100% zum Thema aber ich hoffe dass das nur eine Kleinigkeit ist. Und zwar habe ich zwei Bilder zu per XAML aus eine Ressource hinzugefügt. Diese werden im Designer auch angezeigt, wenn ich das Window allerdings Debugge, sind die Grafiken einfach weg. Jemand eine Idee was ich da falsch mache? <- Gelöst: Wird nur angezeigt, wenn ich das kompilierte Modul aufrufe.

F
Fr3dd1 Themenstarter:in
106 Beiträge seit 2010
vor 12 Jahren

Habe die Probleme vor ein paar Tagen gelöst.

  1. Ich konnte die "ScrollIntoView" Methode auf einmal benutzen, habe das innerhalb des SelectionChanged Events des DataGrids getan.

  2. Bilder die aus Ressourcen geladen werden, werden anscheinend nicht beim Debuggen geladen. Wenn man das kompilierte Modul aufruft, werden die Bilder angezeigt (falsche VS Einstellung meinerseits vielleicht?)

Gruß Fr3dd1

G
75 Beiträge seit 2007
vor 12 Jahren

Hi,

such' mal nach Snoop - das Tool kann Deine Bindings-Fehler darstellen. Wahrscheinlich stimmt was mit 'm Image.Source (relative Pfadangabe) nicht?!?

Ciao:
GG 😉