以编程方式滚动Silverlight ListBox

时间:2010-04-01 20:34:51

标签: silverlight listbox scroll

我尝试使用以下方法,但它似乎不适用于数据绑定列表框。

 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 个答案:

答案 0 :(得分:3)

我工作得很好:

<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和代码隐藏吗?