XAML Scroll intoView不能在异步函数中工作吗?

时间:2016-03-16 14:33:07

标签: c# xaml listview code-behind autoscroll

使用以下代码在ListView中显示一些推文。 我在位置index = 0处插入每条推文,以显示listView(x:name = standardTweetBox)底部的最新推文。

 private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {[...]

        if (searchResponse != null && searchResponse.Statuses != null)
        {
            foreach (Status status in searchResponse.Statuses)
            {
                Tweet tweet = new Tweet(status.User.ScreenNameResponse, status.User.ProfileImageUrl, status.Text, status.CreatedAt.ToString());

                standardTweetBox.Items.Insert(0, tweet);

            }
        }

通常,以下代码应该集中在listView底部的最新推文

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

我成功地在代码的不同部分实现了这行代码。当然使用事件TextBox_Change没有任何意义,但它证明代码工作。

    private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        standardTweetBox.ScrollIntoView(standardTweetBox.Items[standardTweetBox.Items.Count-1]);
    }

这行代码是否可能只是在异步函数中正常工作?

如果需要,这是我的XAML代码:

  <ListView Grid.Row="1"        
            x:Name = "standardTweetBox"
            ItemTemplate="{StaticResource TweetBox}"
            HorizontalAlignment="Center"
            ScrollViewer.VerticalScrollBarVisibility="Disabled"
            >
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel VerticalAlignment="Bottom"/>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>
    <!--</ScrollViewer>-->
    <TextBox  Grid.Row="2" Height="150" Width="380" Text="{Binding Title}" Background="#99FFFFFF" TextChanged="TextBox_TextChanged"/>

如果您需要任何进一步的信息,请与我们联系。

干杯

0 个答案:

没有答案