確かに、些細なことを見逃していました。ItemsControl の外にある ScrollViewer を削除するのを忘れていました。ListBoxには独自のScrollViewerがあるため、これは混乱を招くと思います。
これは別の疑問を提起しました。以前の ScrollViewer は、コード ビハインドから自動的に下にスクロールされていました。ListBox の ScrollViewer にアクセスできないので、そのLineDownメソッドを呼び出すことができません。これが私の回避策です:
// Responses is the ItemsSource
Responses.Add(e);
// xResponses is the ListBox
var item = xResponses.ItemContainerGenerator.ContainerFromIndex(0);
ScrollBar.LineDownCommand.Execute(null, item as IInputElement);
最初はitemが null と評価されることがありますが、これは問題にはなりません。いくつかの項目を追加した後、幸運にもスクロールする前に、コンテナーが正常に返されました。ここでは index は重要ではないことに注意してください。必要なのはScrollViewer内の IInputElement だけです。