如何设置ListBox的滚动条位置?

时间:2010-09-14 14:36:22

标签: c# silverlight-4.0 listbox scrollbar

我正在开发一个silverlight 4应用程序,我经常使用Listboxes和数据绑定。我想要做的是将滚动条位置设置到我的列表框的底部。有一种简单的方法可以做到这一点吗?

顺便说一下,我试过这个但是它不起作用:

COTO_dg.ScrollIntoView(COTO_dg.Items[COTO_dg.Items.Count - 1]);

谢谢你,Ephismen。

2 个答案:

答案 0 :(得分:2)

您发布的代码工作正常,但不是在将项目插入ItemsControl后。为了确保给控制器足够的时间来更新自己,它更容易使用:

Dispatcher.BeginInvoke(() => lb.ScrollIntoView(lb.Items.Last());

其中lb是ListBox或任何其他ItemsControl。 (这在Silverlight页面的构造函数中有效,在一些代码添加了一堆项目之后,刚刚测试过。)

注意:引用是Visual Studio插入的默认引用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

答案 1 :(得分:0)

好吧,发现一些不太干净但效果很好的东西。我会发布它,以便其他人看到我是如何做到的:

以下是我调用方法的方法:

Dispatcher.BeginInvoke(new lol(my_method));

我创建了一个匿名委托以及我将调用它的相应方法:

    public delegate void lol();

    public my_method()
    {
        COTO_dg.ScrollIntoView(COTO_dg.Items[COTO_dg.Items.Count - 1]);
    }

希望这有助于某人。