我正在开发一个silverlight 4应用程序,我经常使用Listboxes和数据绑定。我想要做的是将滚动条位置设置到我的列表框的底部。有一种简单的方法可以做到这一点吗?
顺便说一下,我试过这个但是它不起作用:
COTO_dg.ScrollIntoView(COTO_dg.Items[COTO_dg.Items.Count - 1]);
谢谢你,Ephismen。
答案 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]);
}
希望这有助于某人。