Mam ItemsControl
, który jest databound do ObservableCollection
. Mam tę metodę w kodzie, za którym dodaje nowy model do listy. Chciałbym wtedy przewinąć nowy element (u dołu listy) do widoku.Przewiń nowy element w ItemControl do widoku
Myślę, że rozmiar ItemsControl
nie jest jeszcze aktualizowany, gdy szukam rozmiaru, ponieważ ActualHeight
przed dodaniem modelu i po nim jest taki sam. Efektem tego kodu jest przewinięcie do punktu nieznacznie powyżej nowego elementu.
Skąd mam wiedzieć, co nowego będzie miało nowe ActualHeight
?
Oto mój kod:
ViewModel.CreateNewChapter();
var height = DocumentElements.ActualHeight;
var width = DocumentElements.ActualWidth;
DocumentElements.BringIntoView(new Rect(0, height - 1, width, 1));
DocumentElements.ItemContainerGenerator.ContainerFromItem (model) zwraca wartość null? Nie sądzę, że widok został zaktualizowany do nowego elementu w źródle danych. –
ah, tak, zapomniałem o tym ... ale w każdym razie, jeśli kontener nie jest jeszcze w ItemControl, nie możesz go przewinąć: S –
zobacz moją zaktualizowaną odpowiedź –