DataGrid: immer zum Ende/unteren Rand der selektierten Zeile scrollen

  • WPF
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Schmittmuthelm.

    DataGrid: immer zum Ende/unteren Rand der selektierten Zeile scrollen

    Ich lasse in einem DataGrid ein paar Daten anzeigen die sich zur Laufzeit natürlich ändern. Jetzt habe ich den Fall, dass die selektierte Zeile/Zelle so viel Inhalt bekommen kann, dass die Höhe der einzelnen Zeile größer ist als das DataGrid selbst.
    Jetzt hätte ich gern, dass in dem Fall immer ans untere Ende der aktuellen Zeile gescrollt wird, da ich die jeweils neuen Daten der Zelle sehen will.

    Google hat mir auch nicht viel weiter geholfen, da finde ich meistens nur Beiträge wie man ans Ende des DataGrids scrollt, was ja leider nicht mein Problem ist.
    Ich habe zur Verdeutlichung ein kleines Beispielprojekt gemacht und versucht das falsche und das gewünschte Verhalten grafisch festzuhalten.
    Im richtig.gif scrolle ich wie man sieht "per Hand", aber so ähnlich sollte das Ergebnis am Ende aussehen.
    Bilder
    • falsch.gif

      516,62 kB, 800×420, 93 mal angesehen
    • richtig.gif

      1,09 MB, 800×420, 105 mal angesehen
    Dateien
    • DataGridTest.zip

      (17,63 kB, 62 mal heruntergeladen, zuletzt: )
    Dumm ist der, der dumm ist. Nicht andersrum!
    Hallo

    Als erstes stellt sich mir sie Frage warum man sowas macht?
    Soll das Userfreundliches UX sein?

    Aber egal, der Schlüssel ist die Methode ​ScrollIntoView() des DataGrids.
    Das macht zwar nicht ganz genau das was du machen willst ( in dem Fall das die Row nicht mehr "ins Bild passt") aber spätestens dann sollte ich mir gedanken machen warum man sowas tun sollte.
    Denn für solch eine Anzeige von Daten ist ein Datagrid schlicht nicht da.

    Warum denn keine Master/Detail anzeige?
    Ich selektiere den Datensatz und vor mir aus rechts neben dem Datagrid ist eine Mehrzeilige Textbox wo dann die Werte reinpurtzeln.
    Ist doch viel eleganter oder?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Nofear23m Warum man sowas macht ist eine gute Frage. Das ganze war nicht meine Idee, ich sollte es aber trotzdem so umsetzen.
    Mittlerweile konnte ich den Kollegen zum Glück davon abbringen und wir haben eine Master-Detail-Anzeige, wie auch von dir vorgeschlagen :thumbsup:
    Dumm ist der, der dumm ist. Nicht andersrum!