【发布时间】:2011-05-13 23:12:26
【问题描述】:
有没有办法让 ListView 在通过绑定到 ListView 的 ItemsSource 属性更新数据时保持垂直滚动?我似乎无法在 ListView 或其底层 GridView 控件中找到一个属性来实现所需的结果。我希望它滚动,以便用户始终可以看到最新信息。当行添加到控件时,滚动条已经出现,但不显示最新的行。
我应该考虑使用具有自动滚动功能的不同类型的控件吗?我只有两列:一列包含 DateTimes,另一列包含一个简单的字符串。我开始认为我的控制选择可能太有限了。
我的 XAML 大致如下所示:
<ListView ItemsSource="{Binding Updates}">
<ListView.View>
<GridView>
<GridViewColumn Header="Timestamp" DisplayMemberBinding="{Binding TimeStamp}"/>
<GridViewColumn DisplayMemberBinding="{Binding UpdateString}" />
</GridView>
</ListView.View>
</ListView>
【问题讨论】:
-
考虑到@Daniel 的回答,您是否希望在需要时让 GridView 能够滚动,即。当它包含的数据不止一个屏幕时,或者您是否希望自动发生滚动本身,以便将较旧的数据推出视口,并在添加时滚动新的数据? @Daniel 回答第一个,但第二个需要动画/
EventTriggers。 :) -
好点,我应该澄清一下。当有多个数据屏幕时,我需要它滚动,然后在数据填充 GridView 时滚动。我将添加该信息。
标签: wpf listview gridview .net-4.0 wpf-controls