2016-04-08 10 views
2

私はVisual Studio 2015でMVVM Light WPFアプリケーションを持っています。ScrollViewerにはTabControlが入っていますMainWindow.xamlの内容が含まれています。 TabItemコントロールの1つにDataGridが含まれています。どのように私はのトップにScrollViewerをスクロールすることができますMVVMのScrollViewerでコントロールの上にスクロール

<ScrollViewer> 
    <Border> 
     <DockPanel> 
      <TabControl> 
       <TabItem> 
        <!-- Search controls go here... --> 

        <DataGrid SelectedItem="{Binding SelectedEmployee}"> 
         <!-- DataGrid columns here... --> 
        </DataGrid> 

        <!-- How do I scroll the ScrollViewer to here? --> 
        <TabControl x:Name="tcEmployeeDetails"> 
         <!-- TabItems go here... --> 
        </TabControl> 
       </TabItem> 
       <TabItem> 
        <!-- Other items here... --> 
       </TabItem> 
      </TabControl> 
     </DockPanel> 
    </Border> 
</ScrollViewer> 

:ユーザーがDataGridの行をクリックすると、我々はデータグリッドのSelectedItemにバインドされたビューモデルにSelectedEmployeeプロパティを使用して、tcEmployeeDetailsTabControl示しユーザがDataGridの行を選択した場合、tcEmployeeDetails

答えて

2

は、あなたのVMにプロパティを追加します。

private double _scrollViewerVerticalOffset; 
public double ScrollViewerVerticalOffset 
{ 
    get { return _scrollViewerVerticalOffset; } 
    set { _scrollViewerVerticalOffset = value; } 
} 

バインドこのプロパティをScrollViewerののVerticalOffsetに。

<ScrollViewer VerticalOffset="{Binding ScrollViewerVerticalOffset}"> 

そしてSelectedEmployeeのためにあなたのセッターを変更します。

public double _scrollViewerVerticalOffset 
{ 
    get { ... } 
    set { 
      if (this.SelectedEmployee != value) 
        ScrollViewerVerticalOffset = 0; 
     } 
} 
関連する問題