我正在使用视图模型绑定到列表视图。每次我在视图模型内部可观察集合中添加一个项目时,我都会触发一个带有list.Count-1的LastIndex属性。列表视图绑定到VM的LastIndex属性,listview正确选择添加到视图的最后一项。不幸的是,视图无法将最后添加的项目滚动到视图中。
我尝试在列表视图标记上设置IsSynchronizedWithCurrentItem =“True”,但它没有帮助。
这是我正在使用的标记
<ListView ItemsSource="{Binding Path=Status.Messages}"
SelectedIndex="{Binding Path=Status.LastIndex, Mode=OneWay}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Auto"
HorizontalAlignment="Stretch"
Height="60"
IsSynchronizedWithCurrentItem="True" >
<ListView.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="Visibility" Value="Collapsed" />
</Style>
</ListView.Resources>
<ListView.View>
<GridView AllowsColumnReorder="False" >
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=.}" FontWeight="Thin" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListView.
</ListView>
非常感谢这方面的任何帮助
答案 0 :(得分:15)
您需要调用ScrollIntoView:
list.ScrollIntoView(list.Items[list.Items.Count - 1]);
http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.scrollintoview.aspx
编辑:
这是XAML中的一种方法:
http://michlg.wordpress.com/2010/01/16/listbox-automatically-scroll-currentitem-into-view/