Hey Leute, ich möchte die Listbox-Bildlaufleiste nach unten verschieben, wenn ein neues Element zur Item-Quelle hinzugefügt wird, aber ScrollIntoView () scheint nichts zu tun, wenn ich ihm entweder einen Verweis auf das neu hinzugefügte Objekt übergebe, oder der Index davon. Hat jemand das zur Arbeit gebracht oder irgendwelche anderen Vorschläge, wie ich die Listbox nach unten scrollen könnte?
Irgendein Code:
%Vor%MSDN sagt:
Wenn sich der Inhalt der ItemsSource-Auflistung ändert, insbesondere wenn viele Elemente zur Auflistung hinzugefügt oder daraus entfernt werden, müssen Sie möglicherweise UpdateLayout () aufrufen, bevor Sie ScrollIntoView aufrufen, um in das Ansichtsfenster zu blättern.
Könnte das Ihr Problem sein?
ScrollIntoView
funktioniert definitiv. Ich habe gerade eine Anwendungsschaltfläche zu einer leeren datengebundenen Anwendung hinzugefügt und die folgenden Aktionen beim Klicken auf die Schaltfläche führten zu einem Bildlauf der Liste.
Kann ein Problem mit einem Ereignis in selectionChanged
auftreten? Hast du irgendetwas damit verbunden?
Funktioniert ScrollIntoView, wenn Sie das ausgewählte Objekt nicht festlegen?
Dies ist die Antwort:
Mit ein paar Worten: Die Elemente werden asynchron in die ListBox geladen. Wenn Sie also ScrollIntoView () innerhalb des CollectionChanged-Ereignisses (o.ä.) aufrufen, hat es noch keine Elemente, also kein Scrollen.
Hoffe es hilft, es hat mir sicher geholfen! ; -)
Sie können das neue Element immer an der Spitze einfügen
yourItemList.Insert (0, Element);
also keine Notwendigkeit für ScrollIntoView. Möge das helfen !!
Tags und Links wpf silverlight windows-phone-7