Да, это будет работать нормально. Есть ли у вас проблемы с этим?
РЕДАКТИРОВАТЬ: В ответ на обновленный вопрос ... Для программной прокрутки ListBox вы можете использовать платформу автоматизации пользовательского интерфейса. Ниже приведен код Silverlight, который, как я обнаружил, должен работать и для WPF.
var automationPeer = FrameworkElementAutomationPeer.FromElement(element) ??
FrameworkElementAutomationPeer.CreatePeerForElement(element);
var scrollProvider = automationPeer.GetPattern(PatternInterface.Scroll) as IScrollProvider;
if (scrollProvider != null) {
scrollProvider.Scroll(horizontalScrollAmount, verticalScrollAmount);
}
Можно также заставить это работать, указав ScrollBar.LineLeftCommand и ScrollBar.LineRightCommand на ScrollViewer, вложенный в шаблон ListBox, но я не смог заставить это работать, и я не знаю, если бы вы могли сделать это без кода в любом случае.