Программно прокрутить список Silverlight ListBox - PullRequest
4 голосов
/ 02 апреля 2010

Я пытался использовать следующий метод, но, похоже, он не работает со списком данных с привязкой к данным.

 mylistbox.ScrollIntoView(mylistbox.Items[mylistbox.Items.Count - 1])

Я также попытался получить IScrollProvider безуспешно:

var lbItemAutomation = (ListBoxAutomationPeer)ListBoxAutomationPeer.CreatePeerForElement(mylistbox);
var listBoxScroller = (IScrollProvider)lbItemAutomation.GetPattern(PatternInterface.Scroll);  <-- returns null value

Спасибо, Рики

ОБНОВЛЕНИЕ 4/1: После повторной попытки я подтверждаю, что первый метод работает.Тем не менее, будет хорошо, если второй метод работает, так как вы можете прокрутить этот процент в процентах.Так что любая помощь будет оценена.

1 Ответ

3 голосов
/ 02 апреля 2010

отлично работает у меня:

<StackPanel Orientation="Horizontal">

    <ListBox x:Name="_lbx" ItemsSource="{Binding SimpleItems}" Height="100"/>
    <Button Content="Scroll" Click="DoScroll" />
</StackPanel>

Код-за:

в конструкторе:

SimpleItems = new List<string>{ "hello", "world", "the world", "is coming", "to an end", "in 2012", "or maybe", "sometime", "in the future"};

DataContext = this;

Тогда:

public List<string> SimpleItems { get; set; }


private void DoScroll(object sender, RoutedEventArgs e) {

    _lbx.ScrollIntoView(_lbx.Items[_lbx.Items.Count - 1]);
}

Не могли бы вы опубликовать свой связанный XAML и код?

...