WPF选项卡控件如何强制滚动视图显示新添加的项目

3
我正在使用C#的WPF MVVM。我在一个UserControl中使用了一个ScrollViewer,并且需要以下功能:当向ScrollViewer的内容中添加项目时,如果添加的项目不可见,则希望我的ScrollViewer向下滚动,以便在ListView中查看新添加的项目。我已经成功地绑定了所选项目,但不确定如何使其滚动到该项目。
以上就是我的问题,但我不知道该怎么做。如果有任何意见或问题,我会适当修改帖子,下面是.xaml文件:
谢谢。
     <ScrollViewer  Background="Pink" HorizontalAlignment="Left" Height="173" x:Name="ScrollViewer1" Width="560" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden">

                                <Grid Name="GridValuesAndpartss" VerticalAlignment="Top"  Height="165">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="370" />
                                        <ColumnDefinition Width="204" />

                                    </Grid.ColumnDefinitions>
                                    <ListView  SelectedItem="{Binding SelectedBetmyValue, Mode=TwoWay}" ItemsSource="{Binding Values}"  Name="BetValuesListView" Height="Auto"  Margin="0,0,0,0"  myValueMode="Single" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                       <ListView.View>
                                            <GridView>
                                                <GridViewColumn  Header="Price      "    Width="95">
                                                    <GridViewColumn.CellTemplate>
                                                        <DataTemplate>
                                                            <StackPanel Orientation="Horizontal"  Margin="-7,0,0,0" MinWidth="95" Width="Auto">                                                                   
                                                                <TextBlock Text="{Binding Path=PriceTypeCode}" Foreground="Black" FontSize="10" ToolTip="Price Type Code" />
                                                                <TextBlock Text=":" Foreground="Black" FontSize="10" ToolTip="Price Type Code" />
                                                                <TextBlock Text="{Binding Path=PriceTaken,Converter={StaticResource myValuePriceDisplayConverter}}" Foreground="Red" FontSize="10" ToolTip="Price Taken"  />
                                                                <TextBlock Text="." FontSize="4" />
                                                                <TextBlock Text="{Binding Path=PriceCurrent,Converter={StaticResource myValuePriceDisplayConverter}}" Foreground="Black" FontSize="10" ToolTip="Price @ Scan Time"  />
                                                                <TextBlock Text="." FontSize="4" />                                                                       
                                                                <TextBlock Text="{Binding Path=PriceSP,Converter={StaticResource myValuePriceDisplayConverter}}" Foreground="Green" FontSize="10" ToolTip="Price SP"   />
                                                            </StackPanel>



                                                        </DataTemplate>
                                                    </GridViewColumn.CellTemplate>
                                                </GridViewColumn>
                                            </GridView>
                                        </ListView.View>
                                    </ListView>

                                </Grid>

                            </ScrollViewer>

1
你正在哪里添加新项?是在 ListView 中吗? - 123 456 789 0
在向ListView添加新项的代码之后,您尝试过使用BetValuesListView.ScrollIntoView()吗? - S2S2
1个回答

0

我会尝试在这里稍微使用一下代码。

  1. 给 ScrollViewer 命名(例如 'x:Name="MyScrolly"')。
  2. 监听 ListView 的 'SelectionChanged' 事件。
  3. 在选择变更事件的事件处理程序中(代码后台)调用:

    MyScrolly.ScrollToBottom();

我认为新项目总是在底部。如果不是,请尝试此方法:'ScrollToVerticalOffset()'。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接