1

我正在为 WP8.1 创建一个新的通用应用程序,并且在使用 Hub 控件内的 ListView 时遇到了一些困难。

此 ListView 绑定到聊天消息的 ObservableCollection,并且此 ObservableCollection 会定期使用新消息进行更新。每次更新时,我都会滚动到 ListView 的底部。现在,我通过以下方式完成此操作:

this.vm.Messages.Add(new Message() { Body="Test Message", MateName="Test User", SendTime=DateTimeOffset.UtcNow });
list_messages.ScrollIntoView(this.vm.Messages.Last());

list_messages绑定了 ItemsSource 的 ListView在哪里this.vm.Messages

什么结果很难用图像来展示;列表滚动到底部,但所有项目再次淡入,就好像整个列表正在刷新一样。

当新项目添加到列表末尾时,这是一个进展:

添加新项目时的列表视图进度

如果只是 /last/ 项目消失了,那就太好了......但是整个列表似乎都在刷新。这里可能出了什么问题?

简而言之,这是基本的 XAML。

<ListView
    x:Uid="list_messages"
    x:Name="list_messages"
    Margin="12,-12,6,0"
    ItemsSource="{Binding}"
    HorizontalContentAlignment="Stretch" Loaded="list_messages_Loaded">
    ...
    <ListView.ItemTemplate>
        <DataTemplate>
            <ListViewItem> Textblock w/ bindings, etc. </ListViewItem>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
4

1 回答 1

0

据我了解,您可以试试这个:Perfect ListView

于 2015-12-24T07:19:04.607 回答