ItemsControl
のデータはObservableCollection
にバインドされています。新しいモデルをリストに追加するコードの中に、このメソッドがあります。私は新しい項目(リストの一番下にある)をビューにスクロールしたいと思います。ItemsControl内の新しい項目をスクロールして表示
ItemsControl
のサイズは、モデルの追加前後でActualHeight
が同じであるため、サイズを照会しているときにまだ更新されていないと思います。このコードの効果は、新しい項目の少し上の点までスクロールすることです。
新しいActualHeight
はどのようになるのでしょうか?ここで
BringIntoView
を呼び出すために必要だと思う
ViewModel.CreateNewChapter();
var height = DocumentElements.ActualHeight;
var width = DocumentElements.ActualWidth;
DocumentElements.BringIntoView(new Rect(0, height - 1, width, 1));
DocumentElements.ItemContainerGenerator.ContainerFromItem(model)はnullを返しますか?ビューがまだデータソース内の新しい項目に更新されていないと思います。 –
ああ、はい、私はそれを忘れていました...しかし、もしItemsControlにまだコンテナがないなら、スクロールすることはできません:S –
私の更新された回答を参照してください –