WPF ListView始终关注最后添加的项目?

PaN*_*1Me 6 wpf listview

我有许多具有相同DataSource的ListView,IsSynchronizedWithCurrentItem="True" 我正在动态地向这个DataSource添加项目.

问题是当滚动出现时,除非我移动滚动条,否则添加的项目不可见.我应该为此目的使用另一个控件..或者如何将最后添加的项目带入视图(和滚动条).

直到现在我才直接在XAML中做所有事情,所以如果可能的话,我会很感激这样的解决方案.

PaN*_*1Me 1

我有一个解决方案:

它不能适用于所有情况,但仅此一个就足够了!

诀窍是禁用 ListView ScrollBars 并用 ScrollViewer 包围它。

...

<Grid>
    <Grid.RowDefinitions>
       <RowDefinition Height="*" />  <!-- This is needed! -->
       ...
    </Grid.RowDefinitions>
Run Code Online (Sandbox Code Playgroud)

..

<ScrollViewer x:Name="MyScrollViewer" Grid.Row="0" >
            <ListView Name="MyListView" 
                      ItemsSource="{Binding}" 
                      IsSynchronizedWithCurrentItem="True"
                      ScrollViewer.VerticalScrollBarVisibility="Disabled" />
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

...

</Grid>
Run Code Online (Sandbox Code Playgroud)

然后只需在需要时致电

MyScrollViewer.ScrollToEnd();
Run Code Online (Sandbox Code Playgroud)