WPF选项卡控制强制Scrollviewer显示新添加的项目

时间:2014-04-09 15:45:52

标签: c# wpf mvvm scrollviewer

我正在使用带有C#的WPF MVVM。我在UserControl中有一个Scrollviewer,我需要以下功能,我已经能够找到基本上如何做的事情:

当一个Item被添加到我的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 个答案:

答案 0 :(得分:0)

我会尝试使用稍后的代码。

  1. 为ScrollViewer命名(例如&#39; x:Name =&#34; MyScrolly&#34;&#39;)。
  2. 聆听ListView的“SelectionChanged&#39; -Event”。
  3. 在选择更改事件(代码隐藏)的事件处理程序中调用:

    <强> MyScrolly.ScrollToBottom();

  4. 我认为新项目总是在底部。如果没有尝试这种方法:&#39; ScrollToVerticalOffset()&#39;。