在tabChanged滚动条上滚动到上一个选项卡中的位置

时间:2014-02-27 13:57:03

标签: wpf mvvm binding

我有像这样的TabControl <TabControl HorizontalAlignment="Stretch"
Name="tabControl1" IsSynchronizedWithCurrentItem="True" VerticalAlignment="Stretch" Grid.Column="0" ItemsSource="{Binding Workspaces}" ItemTemplate="{StaticResource ClosableTabItemTemplate}" SelectedItem="{Binding CurrentWorkspace, Mode=TwoWay}"> </TabControl>

Woorkespaces是ViewModels的ObservableCollection

tabItem的DataTemplate是

<DataTemplate DataType="{x:Type vm:TextViewerViewModel}">
        <ctls:TextViewerComponent/>
    </DataTemplate>

TextViewerComponent包含

<!--<ScrollViewer Name="scv" CanContentScroll="True"  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Grid.Row="1"  >-->
    <TextBox Name="logContent" IsReadOnly="True" TextWrapping="Wrap" Text="{Binding PageText}" VerticalScrollBarVisibility="Auto" Grid.Row="1" />
    <!--</ScrollViewer>-->

现在问题是当我更改标签滚动条更新位置以滚动上一个标签的位置时。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

TabControl在使用绑定时虚拟化其选项卡。这意味着始终使用相同的控件实例来呈现其内容。

我在此链接上找到了解决方案Tab virtualization